今日、私はKotlin Docsのこのセクションに出くわしました。 「必要なときに自動的にキャスト(安全)を挿入」Kotlinがいるようだ「スマートキャスト」と呼ばれる:コンパイラはIS-を追跡するためこの例ですでに型が保証されているにもかかわらず、型をキャストする必要があるのはなぜですか?
多くの場合、1は、 Kotlinに明示的なキャスト演算子を使用する必要はありません。不変の値 および挿入のためのチェック(安全な)必要に応じて自動的にキャスト:
fun demo(x: Any) { if (x is String) { print(x.length) // x is automatically cast to String } }
私は「スマートキャスト」は、この例では何をするか理解していません。 x
は常に文字列になるため、キャストする必要はありません。x.length
は常に動作し、キャストは必要ありません。 print
の行はどうなっていますか?前もって感謝します!
ああ、それはそれをクリアします、ありがとう。 Pythonから来て、私はまだ静的な型定義の周りに私の頭をラッピングしています。 – Nearoo