Quoi de neuf dans Kotlin 1.4.0

Aujourd'hui, j'ai décidé d'écrire sur les innovations les plus importantes de Kotlin 1.4.0. Je pense que les développeurs Android novices seront très intéressés par ce sujet et qu'ils pourront appliquer de nouvelles fonctionnalités dans leurs applications. J'espère également que mon article sera utile aux développeurs professionnels qui aiment vraiment et aident à développer Kotlin.





Les principaux sujets que je vais aborder:





  • Innovations de syntaxe





  • Nouveaux outils dans l'EDI





  • Nouveau compilateur





  • Qualité et performance





Eh bien, je vous suggère de vous servir du café ou du thé, de faire le plein de bonbons et vous pouvez commencer)





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. Une augmentation de la vitesse de l'EDI, visible en suivant le lien (voici le temps de mettre en évidence la syntaxe Kotlin lors de l'ouverture d'un grand projet). La figure ci-dessous montre également le temps de réponse de la saisie semi-automatique (qui a diminué par rapport aux versions précédentes)





  3. Et bien d'autres qui sont directement liés à la création d'un nouveau compilateur.





Quelques liens utiles

  1. Notes de mise à jour de Kotlin 1.4.0 sur le blog JetBrains





  2. Nouvelles fonctionnalités sur le site officiel de Kotlin





  3. Événement en ligne Kotlin 1.4.0 (en anglais)





  4. Statistiques de StackOverflow Survey 2020





  5. Statistiques de JetBrains












All Articles