LoginSignup
3
1

More than 3 years have passed since last update.

Kotlinを勉強し始めたのでメモ。
KotlinはNull安全、つまりNull非許容が基本であるということ。

何が嬉しいのか

Null非許容で嬉しいのは、コンパイル時点でNullが入り込むのを防いでくれるから。
基本Null許容する言語、Javaなどの場合はプログラム実行時に意図しないNull混入によって、"Null pointer Exception(通称ぬるぽ)"が発生する可能性がある。

  val i: Int = 200
  val j: Int = i // nullじゃないので代入OK

  val k: Int? = null // ?をつけるとNullable(Null許容型になる)
  val l: Int = k // Nullableな変数 k はNull非許容 l への代入不可。Nullが入る可能性を排除している。

Nullableを安全に使用するには safe call

safe callを使う。
Nullable型にnullが入っていれば処理を実行しないようにできる。

// safe call;Nullable型がnullでない場合のみ値にアクセス

  val value = null //ここに値が入る場合は下記のtoString()は実行される。
  val str: String? = value?.toString() //toString()は実行されないのでエラーを防げる。
  println(str) //null

smart cast

参照する値がnull出ないことを確実に知らせておけば、
非Nullの型として扱ってくれる機能をsmart castという。

// Trueならsmart castされる
  if (k != null) {
    println(k.toString()) //safe call しなくてもif文中ではIntとして扱える(?がいらない)
  }

?:演算子

  println(k ?: 0) //nullなら0を返す

強制非Null変換

// 非Nullへの変換、極力使わない方がいい。
  var str: String? = "aefe"
  println(str!!.length)
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1