いつもありがとうございます。
Kotlin の Null-Safety について質問させてください。
Kotlin
1class C { 2 fun m() = println("hello") 3}
というクラスがあったとき、
###コード1
Kotlin
1var c: C? = null 2c = C() 3c.m()
これはコンパイルがとおります。ですが、
###コード2
Kotlin
1var c: C? = C() 2c.m()
これは Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type C? というコンパイルエラーとなります。
「コード1」がOKで、「コード2」がNGである理由を教えていただけますでしょうか。
###■追記補足
###コード3
これも通る。
Kotlin
1var c: C? = C() 2// c.m() // ←これは× 3c = C() 4c.m()
※タイトルを修正しました。
回答1件
あなたの回答
tips
プレビュー