Avatar
↓は許容されていて、 Self はサブクラスには波及しない。 protocol Animal { func foo(_ x: Self) } class Cat: Animal { func foo(_ x: Cat) {} } class Siamese: Cat { } let siamese = Siamese() siamese.foo(Cat())