勉強会の中で Optional<A>
が A
の サブタイプ
と話しましたが、実際は逆でした。
具体的には、たとえば Optional<A>
型の変数に A
のインスタンスを格納できます。これはたとえば Base
型の変数にそのサブタイプである Sub
型のインスタンスを入れられるのと同等です。
struct A {}
class Base {}
class Sub : Base {}
let v1: A? = A()
let v2: Base = Sub()
勉強会の中で Optional<A>
が A
の サブタイプ
と話しましたが、実際は逆でした。
具体的には、たとえば Optional<A>
型の変数に A
のインスタンスを格納できます。これはたとえば Base
型の変数にそのサブタイプである Sub
型のインスタンスを入れられるのと同等です。
struct A {}
class Base {}
class Sub : Base {}
let v1: A? = A()
let v2: Base = Sub()