4
foo as? Foo
はfoo as Foo?
の完全な同等物ですか?`foo asは? Foo`はkotlinの `foo as Foo`と完全に等価ですか?
「はい」の場合は、その理由は何ですか?
何も違いがない場合は、
foo as? Foo
はfoo as Foo?
の完全な同等物ですか?`foo asは? Foo`はkotlinの `foo as Foo`と完全に等価ですか?
「はい」の場合は、その理由は何ですか?
何も違いがない場合は、
as?
は、safe cast operatorです。
通常、変数をキャストしようとすると失敗すると、ClassCastException
が返されます。この演算子を使用すると、代わりにnull
が返されます。
これはnull
を返す可能性があるので、foo as? Foo
式の戻り値の型は実際にはFoo?
であることを意味します。
foo as Foo?
変数は、その型ではない場合、これは依然として(すなわち、それはFoo
インスタンスまたはnull
ない)例外を生成することができ、NULL可能Foo?
タイプにfoo
のキャストです。