2011年に初めて登場した静的型付けプログラミング言語Kotlinは、近年急速に普及しています。これまでのデータや予測によると、Google I/O 2017以前にJavaで構築されたアプリケーションの20%以上が、Kotlin言語で構築されています。将来的には、サーバー上でJavaの使われ方が変わる可能性があります。2018年12月にはKotlinがJavaを上回ると予想されています。
Kotlin 1.2のベータ版がリリースされました。当然ですが、Kotlin標準ライブラリの強化だけでなく、コンパイラーとツールの安定性とバグ修正に重点が置かれています。どのような変更がなされ、どのような機能が追加されたのか見てみましょう。
8. 警告をエラーとする
Kotlinコンパイラーには、プログラムの警告をすべてエラーとすることができます。上に示したコードを追加するか、コマンドラインで-Werrorとタイプするだけです。
7. 型推論の改善
コンパイラは型推論で型キャスト情報を導入しました。型パラメータSを返すジェネリック・メソッドを呼び出し、その戻り値を特定の型XYZにキャストした場合、コンパイラーはこの呼び出しのSが型XYZにバインドされるべきであることを自動的に知らせるようになっています。
6. バウンド呼び出し可能参照のショートハンド構文
Kotlin1.2では、this::doWorkのようにthisの中にバインドされた参照を生成する式でこれを排除できます。::doWorkと入れるだけです。
5. 新しいパッケージ
Kotlinの標準ライブラリーは、Java 9モジュール・システムと互換性があります。クロスプラットフォームのコードで数学演算を実行するために、kotlin.mathという新しいパッケージが追加されました。
Kotlin 1.2では、逆双曲線関数(acosh、asinhand atanh)を使えるようにしました。また、nextUPやtoBitsといった浮動小数点数を2進数に変換する関数がJavaScriptで利用できるようになりました。
4. スマートキャストが使いやすくなった
Kotlin 1.2は、セーフ・キャストのサブジェクト(およびセーフ・コールのレシーバー)のスマート・キャストを使うことができます。
さらに、スマートキャストは、クロージャの前(内部でも後でもない)にローカル変数が変更されると許可されます。
3. レイトイニットが新しくなった
Kotlin 1.2には、lateinit変数が初期化されたかどうかを検証する新しいリフレクションAPIが付属しています。