Sequence
として振る舞うときは Optional
を返し、 ClosedRange
として振る舞うときは non-Otional
を返す)、それができないならサブタイプのフリをするのやめてほしいなぁ。今更どうしようもないけど。 (edited)class Animal {} class Cat: Animal {} protocol P { func foo() -> Animal } struct S: P { func foo() -> Cat { Cat() } } let s = S() print(s.foo())
class Animal {} class Cat: Animal {} protocol P { func foo() -> Animal } struct S: P { func foo() -> Cat { Cat() } } let s = S() print(s.foo())