Yang baru di Kotlin 1.4.0

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 .





:





  1. API API





  2. API:









    1. , API





  3. : 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 :





:





  1. ( )





  2. (Gradle, Maven)









  3. / ,





  4. JVM , framework .





Kotlin ( ).





Kotlin 1.4.0 , .





, Debug Tool Window Intellij IDEA, :













  1. , ( )





  2. , Get Coroutines Dump





:









  1. , Kotlin





  2. API





:





  1. . ( Kotlin 1.3 , ). YouTrack





  2. backend ( Kotlin backend, : Kotlin/JVM, Kotlin/JS Kotlin/Native. (IR) Kotlin )





JetBrains frontend .





Frontend - , , , .





IDE, , , Kotlin .





:





  1. 60 , IDE





  2. 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)





  3. Dan banyak lainnya yang berhubungan langsung dengan pembuatan kompiler baru.





Beberapa tautan berguna

  1. Kotlin 1.4.0 Catatan Rilis di Blog JetBrains





  2. Fitur baru di situs resmi Kotlin





  3. Kotlin 1.4.0 Online Event (dalam bahasa Inggris)





  4. Statistik dari StackOverflow Survey 2020





  5. Statistik dari JetBrains












All Articles