Skip to content

Instantly share code, notes, and snippets.

@gakuzzzz
Last active July 1, 2016 06:09
Show Gist options
  • Save gakuzzzz/5b286079f2166b4157de14e5e92d72dd to your computer and use it in GitHub Desktop.
Save gakuzzzz/5b286079f2166b4157de14e5e92d72dd to your computer and use it in GitHub Desktop.
flow sensitive types と副作用の密結合
val a: String? = ...
val b: String? = ...

val r = if (a != null && b != null) {
    a + b
} 
r?.let { print(it) } // else 無いと if式の代入がコンパイル通らない
val a: String? = ...
val b: String? = ...

val r = if (a != null && b != null) {
  a + b
} else {
  null
}
r?.let { print(it) } // 毎回 else null 書くのは現実的では無さそう
val a: String? = ...
val b: String? = ...

if (a != null && b != null) {
  print(a + b)
}
// 副作用を密結合させてしまう方が簡単ってなってしまう
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment