さっきまで知りませんでした。今まで書いてきたコード、Javaは意図通りだけどKotlinは間違ってた。汗)
短絡表現とは
論理積(AND)なら、最初の式がfalseなら、二つ目の式を評価するまでもなく全体がfalseになるので、二つ目の式の評価がスキップされるというものです。
シェルスクリプトとかだと、論理和的に使って最初のコマンドがエラーになったら、次のコマンドも呼ばれてエラー処理する、みたいな使い方になります。
詳しくは、Wikipediaを参照ください。
→
https://ja.wikipedia.org/wiki/%E7%9F%AD%E7%B5%A1%E8%A9%95%E4%BE%A1
短絡評価のするしない
そもそも短絡評価をしない表現方法があることを知りませんでした。
言語 | 短絡評価する | 短絡評価しない |
---|
Java | && や || | & や | |
Kotlin | && や || | and や or |
Androidのプログラムで、次のようなコードがなぜか古い端末でエラーになるのを調べていて知りました。
((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
and shouldShowRequestPermissionRationale(BLUETOOTH_SCAN)) -> {
短絡評価をするためには次のように書かなければならなかったです。
((Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
&& shouldShowRequestPermissionRationale(BLUETOOTH_SCAN)) -> {
そもそもなぜ「
and
」と書いてしまったのかは、言語をまともに勉強しなかったからです。すみません。