LoginSignup
1

More than 1 year has 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)

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
What you can do with signing up
1