【学習kotlinシリーズ】スマートキャスト

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

Qiitaでことりん学習帳を発売しています!

スマートキャストとは

Null安全で述べた通り、Nullの代入を許可すると、そのオブジェクトのメソッドやプロパティにはアクセスできなくなる。が、if文でNullでないことを確認すると、メソッドやプロパティにアクセスできる。

実際に書いてみる

fun main(args: Array<String>){

    val str: String? = "abc"

    if (str != null){
        print(str.toUpperCase())
    }

}

実行結果

ABC

when文を使うことで、更にスマートキャストを活用できる。

実際に書いてみる

fun main(args: Array<String>){

    val lst: List<Any> = listOf('a', 3, "abc", true)

    for( e in lst ){
        val result: Any? = when(e){

            is Int -> e + 3
            is String -> e.toUpperCase()
            is Char -> e
            is Boolean -> e.not()
            else -> null
        }

        println(result)
    }

}

実行結果

a
6
ABC
false

Related posts

コメントを残す