【学習kotlinシリーズ】!!演算子・requireNotNull関数

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

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

!!演算子とは

!!演算子は、?で変数をnullにすることができるようにした状態(nullable)を解除し、再びnullを禁止した状態(notnull)に戻す演算子。ただし、nullの変数をnotnullに戻し得る操作は危険のため、どうしてもそのような実装をしたい場合はrequireNotNull関数でメッセージを残すようにするべき。

実際に書いてみる

fun main(args: Array<String>){

    val a: Int? = 5
    val b: Int? = null

    // print(a+1)はエラーが返される。
    println(a!! + 1)

    println(requireNotNull(a) + 5)
    val c: Int? = requireNotNull(b, {"Nullじゃだめ"})
    println(c)
}

### 実行結果

objc[3612]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java (0x10ed594c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10fdda4e0). One of the two will be used. Which one is undefined.
Exception in thread "main" java.lang.IllegalArgumentException: Nullじゃだめ
    at GenericsKt.main(generics.kt:14)
6
10

Related posts

コメントを残す