BT

InfoQ ホームページ ニュース Kotlin 1.4 は新しい言語機能、改善されたコンパイラとツールを提供

Kotlin 1.4 は新しい言語機能、改善されたコンパイラとツールを提供

ブックマーク

原文(投稿日:2020/08/20)へのリンク

Kotlin 1.4 はパフォーマンスとツールの改善に重点を置いている。また、インタフェースの単一抽象メソッド(SAM)変換、明示的な API モードなど、多くの新しい言語機能が含まれている。

今回のリリースでは主眼を置いているのは、IDE のパフォーマンスと安定性の向上など、Kotlin での開発体験全体の向上だ。私たちの目標は、Kotlin ユーザーが可能な限り生産的になることだ。私たちは、ユーザーにとって最も重要なことを改善することに焦点を当てた。なので、使っているとさらに幸せな気分になるだろう。

IntelliJ IDEA 2020.1+ と Android Studio 4.1+ 用の Kotlin プラグインでは、60 以上のパフォーマンス問題を修正している。そのおかげで、例えば、構文のハイライト表示が 1.5 ~ 4 倍速くなったと JetBrains は言っている。同様に、オートコンプリートサジェストの表示にかかる時間も短縮された。500ms 未満で表示されるケースが以前のリリースの 92.4% から増加し 95.4% になった。また、1 秒以上必要なケースはわずか 1.3% にとどまっている。

JetBrains は新しい Kotlin コンパイラのフロントエンドの一部もリリースしている。これはより高速で、サポートされているすべてのプラットフォームを統一することを目指している。特に最新のコンパイラでは、より強力な型推論エンジンを使用し、アルファ品質の新しい JVM と JS バックエンドが含まれている。

新しい型推論エンジンは、型を推論できるケースの数を増やし、ラムダの最後の式や Callable Reference に対するスマートなキャストをサポートしている。Kotlin/JVM と Kotlin/JS は Kotlin/Native と同じ IR を使用するように移行された。これにより、ほとんどの機能、最適化、バグ修正をすべてのプラットフォームに一度だけ実装できる。

言語機能といえば、Kotlin 1.4 には多くの新機能が含まれている。これらは、インタフェースの単一抽象メソッド(SAM)変換、ライブラリの明示的な API モード、名前付き引数と位置引数の混合のサポート、末尾カンマなどだ。

単一抽象メソッドの変換は、以前の Kotlin リリースにも存在していた機能だ。しかし、Javaのメソッドとインタフェースでしか使用できなかった。今では Kotlin のインタフェースにも使えるようになった。つまり、単一抽象メソッド変換では、単一の抽象メソッドだけを持つインタフェースが期待される場合に、引数としてラムダを渡すことができる。

fun interface IntPredicate {
    fun accept(i:Int):Boolean
}

val isEven = IntPredicate { it % 2 == 0 }

fun main() { 
    println("Is 7 even? - ${isEven.accept(7)}")
}

明示的な API モードを使用する場合、Kotlin コンパイラはライブラリインタフェースを改善するために 2 つの特別なルールを適用する。デフォルトの可視性が public の場合、意図せずに公開されることを防ぐために、すべての宣言に可視性修飾子が必要になる。同様に、public API に属するプロパティや関数についても明示的な型指定が必要だ。

Kotlin 1.4 には他にも、名前付き引数と位置引数の混合末尾カンマのサポートなどの便利な言語機能が含まれている。Kotlin 1.4 では、位置引数の途中に名前付き引数を指定できる。また、名前付き引数と位置引数を自由に混在できる。順番を間違えないようにしてください。末尾のカンマは引数とパラメータリスト、whenエントリ、およびデストラクタ宣言の中で使用できる。

ツール面では、新しいプロジェクトウィザードコルーチンデバッガが注目に値する。 これは、各コルーチンの状態をチェック、ローカル変数やキャプチャされた変数の値を検査、コルーチン呼び出しにつながる呼び出しスタックやコルーチン自体に属するフレームを検査できる。

Kotlin 1.4 はすべての点でメジャーバージョンだ。ここではすべてをカバーできないが、多くの新しい要素が含まれている。詳細は公式リリースノートをお見逃しなく。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。