iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

Kotlinのスマートキャスト

スマートキャストとは?

スマートキャストは、型判定とキャストが同時に行われる、Kotlinコンパイラの仕組みのことをいいます。

使い方

Kotlinではis演算子を使うことで、下記のようにスマートキャストが行われます。

fun demo(x: Any) {
    if (x is String) {
        print(x.length) // x は自動的にStringにキャストされてる
    }
}

また、スマートキャストで右辺の式を正しく評価することも可能です。めちゃ便利ですね😇

if (x !is String || x.length == 0) return

if (x is String && x.length > 0) {
    print(x.length)
}

when式でも使えるらしいです。

when (x) {
    is Int -> print(x + 1)
    is String -> print(x.length + 1)
    is IntArray -> print(x.sum())
}

てな感じで本日も以上となります🍺

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com