Sept compétences de développement Kotlin que vous devez connaître

Prenez l'habitude d'écrire ensemble ! C'est le 15ème jour de ma participation au "Nuggets Daily New Plan·April Update Challenge", cliquez pour voir les détails de l'événement .

1. boucle for en kotlin

  • La première..
for (i in 0..5) {
    println(i)
}
复制代码

正序Sortie : 0 1 2 3 4 5, qui est un intervalle fermé à gauche-fermé à droite

  • la deuxièmeuntil
for (i in 0 until 5) {
    println(i)
}
复制代码

正序Sortie : 0 1 2 3 4, qui est un intervalle fermé à gauche et ouvert à droite

  • le troisièmedownTo
for (i in 5 downTo 0) {
    println(i)
}
复制代码

倒序Sortie : 5 4 3 2 1 0, qui est un intervalle fermé à gauche-fermé à droite

  • le quatrièmestep

C'est avec une taille de pas, telle que :

for (i in 0 until 5 step 2) {
    println(i)
}
复制代码

Sortie : 0 2 4, vous pouvez voir que la taille du pas est définie sur 2 et que la sortie est tous les 2

  • Cinquième collègezip
for((i, j) in (1..5).zip(5..10))  {
    println("$i -- $j")
}
复制代码

zipDeux paramètres sont pris en charge, voir la sortie :

image.png

2. useFonction d'extension

Habituellement lu et écrit à partir de la sortie du fichier et du flux d'entrée, vous devez appeler la méthode pour fermer la sortie ou le flux d'entrée une fois la lecture et l'écriture terminées pour closeéviter une exception, mais l'exigence est une exigence, et il y a une probabilité de écriture manquante lors de l'élaboration du programme.

Kotlin fournit donc une userméthode d'extension pour nous aider à fermer le flux, regardez d'abord l'utilisation :

File("").outputStream().use {
}
复制代码

Après utilisation use, il n'est pas nécessaire que le programme ferme manuellement le flux. Regardez le usecode source :

image.png

De la même manière, la base de données en lecture-écriture cursorprend également en charge l'utilisation de use.

3. Scellésealed class

Une classe scellée est définie comme suit :

sealed class Kit {
    data class H(val name: String = "")
    data class O(val age: Int = 0)
    data class L(val show: Boolean = false)
}
复制代码

En fait, les classes scellées sont très similaires aux classes abstraites et aux énumérations, mais il y a deux avantages qui sont significativement différents des classes abstraites et des énumérations :

  • Hiérarchie de la structure des classes (par rapport aux classes abstraites)

La classe d'implémentation concrète de la classe abstraite peut être définie à divers endroits dans le package, ce qui est très peu pratique à gérer, tandis que la classe scellée a une structure hiérarchique, c'est-à-dire 密封类的子类只能和密封类定义在同一个类文件中. Bien sûr, les versions après kotlin 1.4 ne seront pas aussi restrictives

  • Les objets de sous-classe prennent en charge la création dynamique (par rapport à l'énumération)

Le moyen le plus sûr d'implémenter un singleton en Java consiste à utiliser une implémentation d'énumération. Le contenu de chaque élément de la déclaration d'énumération est fixe et les paramètres ne peuvent pas être transmis en externe. et密封类的子类可以声明为object,这个效果就和枚举元素一样,也可以声明为普通的class,可以外部进行传参创建类的对象

Je suppose que tu aimes

Origine juejin.im/post/7087029690250035236
conseillé
Classement