🍀
Kotlinの標準APIを知る【Boolean編】
Kotlin初心者から中級者へのレベルアップを目指して、Kotlinの標準APIの仕様を理解し、気になった点や記録しておいた方が良さそうだと感じた点をまとめていこうというシリーズです(※これからシリーズにするつもりです。)
まずは簡単そうなところから
Boolean
公式APIドキュメント
学び
not()
KotlinのBooleanクラスではいわゆる否定論理演算子(!
)と同じことがnot()
でできます
val falseValue = true.not()
// 関数の戻りとして返ってきたBooleanにもそのままメソッドチェーンで書けます
fun isOK(): Boolean {
return true
}
isOK().not()
上手く使っていくことでコードが読みやすくなると思います。
or , and
中置記法をサポートしたメソッドとして一般的なところでor
とand
があります
val result_1 = true or false
val result_2 = true and true
こんな風に書けます
おおっ!! Javaで
val result_1 = true || false
val result_2 = true && true
こう書いてたのをより文章として読める(読みやすい)形で書けそうだ!いいね!って思ったのもつかの間・・・
こちらのメソッドは短絡評価されません。
fun conditionExprA(): Boolean {
println("eval A")
return true
}
fun conditionExprB(): Boolean {
println("eval B")
return true
}
fun main() {
val result_1 = conditionExprA() || conditionExprB()
println("=========================")
val result_2 = conditionExprA() or conditionExprB()
}
実行結果は以下のようになります。
eval A
=========================
eval A
eval B
つまり常に関数の両辺が評価されてしまうため論理演算子(&&
や||
)とは完全に等価とはならない模様です。
まとめ
標準APIの内部仕様を見たりドキュメントを読むことは得られるものが多いです。
自分はそのことにやっと気が付いたレベルですが・・・これからも継続していきたいです。
Discussion