しかし根本的なとこでいうと、マウスやキーボードで操作するアプリではないなー
kotlinでnull安全が提供されたのは良いが、次は文字列のempty安全が欲しいと思うのは間違っているだろうか
kotlinでインライン関数に渡したラムダ式からの非局所リターン、使えない状況で記述するとコンパイルエラーになるのだった。これならまあ自分の足は撃たなくてすむと思う
コードを書いて試した後app/build/tmp/kotlin-classes/ にできるファイルをjavapで逆アセして確認
==演算子:int10==long10と書くとエラー。int10.equals(long10)はfalse。逆アセ見るとvalueOfでboxing して Integer.equalsだった
まず型を揃えないと数値比較はできないようだ。暗黙の昇格はないぽい。 そういえばcharとintの比較演算も毎回.toChar() や.toInt() を書く必要がある
===演算子:int10===long10と書くとエラー。int10===int10bはdeprecated警告が出て結果はtrue。逆アセ見ると if_icmpne で数値を比較していた。as Anyしてから比較するとvalueOfでboxing してif_acmpneでアドレス比較。
valueOfは-128..127の範囲は内部でキャッシュを行うので、数値が同じでもtrue/falseは変わる