今日、私はKotlin1.4.0の最も重要な革新について書くことにしました。初心者のAndroid開発者はこのトピックに非常に興味を持っており、アプリケーションに新しい機能を適用できるようになると思います。また、私の記事が、Kotlinを愛し、開発を支援するプロの開発者にとって役立つことを願っています。
私がカバーする主なトピック:
構文の革新
IDEの新しいツール
新しいコンパイラ
品質とパフォーマンス
さて、私はあなたがあなた自身にいくつかのコーヒーまたはお茶を注ぎ、お菓子を買いだめすることを提案します、そしてあなたは始めることができます)
Kotlinのリリースについて少し
:
|
|
|
Kotlin 1.4.0 |
17 , 2020, , . , IDE. |
|
Kotlin 1.4.10 Kotlin 1.4.20 Kotlin 1.4.21 |
7 , 2020, Kotlin 1.4.0 23 , 2020, , JVM. 7 , 2020, Kotlin 1.4.20 |
|
SAM -
SAM (SAM - Single Abstract Method, ).
Kotlin , SAM fun
, :
fun interface ItemSelectListener {
fun onItemSelect(position: Int): String
}
val items = listOf("Item 1", "Item 2", "Item 3")
val myListener = ItemSelectListener { position ->
items[position]
}
fun main() {
print("selected item -> ${myListener.onItemSelect(0)}")
}
: RecyclerView .
.
API
Kotlin API .
:
API API
API:
, API
: data , ..
. Kotlin 1.4.0 :
fun foo(a: Int, b: String = "", c: Int) {}
fun main() {
foo(a = 10, "Hello, World", c = 100000)
}
, ( "Hello, World"
). Kotlin .
fun reformat(str: String,
wordSeparator: Char = ' ', //
) {
// TODO
}
, default :
fun foo(a: Int = 0): String = "value -> $a" // 'a' 0
fun apply(f: () -> String): String = f()
fun main() {
println(apply(::foo))
}
, , Unit
.
foo
, , (Unit
). , , :
fun foo(f: () -> Unit) { }
fun returnValue(): Int = 42
fun main() {
foo { returnValue() } // Kotlin 1.4.0
foo(::returnValue) // Kotlin 1.4.0 ,
//
}
, :
fun foo(a: Int, vararg words: String) {}
fun useCase0(f: (Int) -> Unit) {}
fun useCase1(f: (Int, String) -> Unit) {}
fun useCase2(f: (Int, String, String) -> Unit) {}
fun test() {
useCase0(::foo)
useCase1(::foo)
useCase2(::foo)
}
, suspend
fun lockUI() {}
fun takeSuspend(f: suspend () -> Unit) {}
fun test() {
takeSuspend { lockUI() } // Kotlin 1.4.0
takeSuspend(::lockUI) // Kotlin 1.4.0
}
break and continue when , for
Kotlin 1.4.0 break
continue
when
, for
( , )
fun foo(numbers: List<Int>) {
for (num in numbers) {
when {
num % 2 == 0 -> continue
num == 10 -> break
else -> println(x)
}
}
}
IDE
Kotlin :
:
( )
(Gradle, Maven)
/ ,
JVM , framework .
Kotlin ( ).
Kotlin 1.4.0 , .
, Debug Tool Window Intellij IDEA, :
, ( )
, Get Coroutines Dump
:
-
, Kotlin
API
:
. ( Kotlin 1.3 , ). YouTrack
backend ( Kotlin backend, : Kotlin/JVM, Kotlin/JS Kotlin/Native. (IR) Kotlin )
JetBrains frontend .
Frontend - , , , .
IDE, , , Kotlin .
:
60 , IDE
リンクをたどると、IDEの速度が向上します(これは、大規模なプロジェクトを開くときにKotlin構文を強調表示するときです)。次の図は、自動完了応答時間も示しています(以前のリリースと比較して短縮されています)
そして、新しいコンパイラの作成に直接関係する他の多くの。