val a = if (1 < 2 ) {10} else {20} println(a)まぁこれだけやと三項演算子と何が違うの?っていわれそうやけども。
if式でハマってしまったのは、if式の評価順が予想よりも低いこと。
以下の例の出力結果はどうなるやろうか。
val a = if (1 < 2 ) { 10 } else { 20 } + 5 println(a)
意味もなくネストして書いてみたけど、こいつの出力結果は10となる。 これはifよりも{20} + 5が先に評価されたせい。 これに気づかずに1時間ぐらい悩んでたら良くある誤解として取り上げられていたのでメモ。
0 件のコメント:
コメントを投稿