Hari ini saya memutuskan untuk menulis tentang inovasi terpenting di Kotlin 1.4.0. Saya pikir pengembang Android pemula akan sangat tertarik dengan topik ini dan mereka akan dapat menerapkan fitur-fitur baru di aplikasi mereka. Selain itu, semoga artikel saya bermanfaat bagi developer profesional yang sangat menyukai dan membantu mengembangkan Kotlin.
Topik utama yang akan saya bahas:
Inovasi sintaks
Alat baru di IDE
Kompiler baru
Kualitas dan kinerja
Nah, saya sarankan Anda menuangkan kopi atau teh untuk diri Anda sendiri, menimbun permen dan Anda bisa mulai)
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
Peningkatan kecepatan IDE, yang dapat dilihat dengan mengikuti link (inilah saatnya menyoroti sintaks Kotlin saat membuka project besar). Gambar di bawah ini juga menunjukkan waktu respons pelengkapan otomatis (yang menurun dibandingkan rilis sebelumnya)
Dan banyak lainnya yang berhubungan langsung dengan pembuatan kompiler baru.
Beberapa tautan berguna
Kotlin 1.4.0 Catatan Rilis di Blog JetBrains
Fitur baru di situs resmi Kotlin
Kotlin 1.4.0 Online Event (dalam bahasa Inggris)
Statistik dari StackOverflow Survey 2020
-