Avatar
protocolの中で、static func some() -> Self と宣言するのと、 initを作るの、明らかに後者の方が強いということがわかった
7:27 AM
static funcをprotocol extensionに実装した場合、必ずstatic funcになる(class funcにできない)ので、Selfの返り値が実装を宣言したクラスに固定されて、final classであることが強制される (edited)
7:27 AM
一方でinitはrequired initの扱いになって、返り値はSelfに決定されるので、サブクラス化が可能だった (edited)