問題タブ [kotlin-null-safety]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
48 参照

kotlin - 新しい値を変更できるvarクラスメンバーの設定はタイプですか?

タイトルの質問に対する答えは「いいえ」だと確信しています。しかし、単純なコードを書いたのですが、コンパイルしようとすると奇妙なエラーが発生します。コード:

コードの最後の行:

println(hippo?.hunger) // println(hippo?.hunger as Int?) が動く!!

コンパイラに次のエラーを表示させます。

Hippo?.hunger は可変プロパティであり、この時点で変更されている可能性があるため、Int へのスマート キャストは不可能です。

しかし、次の行を削除すると、コードはコンパイルされます:

カバ?.空腹 = 5

誰かが私に説明できますか、コードが正常にコンパイルされないようにするこのコード行の何が問題なのですか?

ここに画像の説明を入力