スマートキャストで、これは問題なくできる。
val x: Any = 0.3
if (x is Double) println(x + 0.2)
しかしこれはできなかった。
val x2: List<Any> = listOf(0.3)
if (x2[0] is Double) println(x2[0] + 0.2)
足し算する前に as Double でキャストすると問題なし。
if (x2[0] is Double) println(x2[0] as Double + 0.2)
なんで? val で List だから内容が変更されることはない筈で、スマートキャストできそうに見えるんだけど。
Listの中身まで推論してられっかボケってこと?
Kotlin 6
■ このスレッドは過去ログ倉庫に格納されています
650デフォルトの名無しさん
2020/02/05(水) 17:46:33.75ID:9nK7Yle0■ このスレッドは過去ログ倉庫に格納されています
