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 .
:
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
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)
Et bien d'autres qui sont directement liés à la création d'un nouveau compilateur.
Quelques liens utiles
Notes de mise à jour de Kotlin 1.4.0 sur le blog JetBrains
Nouvelles fonctionnalités sur le site officiel de Kotlin
Événement en ligne Kotlin 1.4.0 (en anglais)
Statistiques de StackOverflow Survey 2020
-