Quand j'ai commencé à développer avec Kotlin, j'aimerais écrire un point sur lequel j'étais confus. Que les développeurs Java qui lisent cet article prennent un bon départ dans le développement Kotlin ...
Déclarons une variable en Java.
int i = 0;
Si vous écrivez ceci à Kotlin
var i: Int = 0
Ce sera comme ça.
nom de variable
: type
Alors qu'en est-il de var
?
var
(variable)
Identique aux variables non finales Java. Il peut être réaffecté après l'initialisation.
val
(value)
Identique à Java avec final. Il ne peut pas être réaffecté après l'initialisation.
val i: Int = 0
i = 1 //Erreur de compilation
var i: Int = 0
i = 1 // OK
** Si possible, déclarez la variable avec «val» de réaffectation NG.
N'utilisez var
que lorsque vous en avez besoin. ** **
Par ailleurs, même dans le cas de «val», il n'est pas nécessaire d'initialiser au point de déclaration.
val i: Int
if (flag) {
i = 1
}
else {
i = 4
}
Kotlin a une inférence de type.
Si vous déclarez une variable sans utiliser l'inférence, c'est ↓
val i: Int = 0
Vous pouvez omettre le type en utilisant l'inférence ↓
val i = 0
Supposons le type du littéral.
val i = 0 // Int
val l = 0L // Long
val f = 0F // Float
val d = 0.0 // Double
val c = 'c' // Char
val str = "str" // String
Essayez de déduire la valeur de retour de la fonction.
fun getString(): String {
return "kotlin"
}
val str = getString()
// val str:Vous n'êtes pas obligé d'écrire String
Kotlin n'a pas de «commutateur». Il y a plutôt «quand».
Traitons enum, qui représente un jour.
enum class DayOfWeek {
SUN, MON, TUE, WED, THU, FRI, SAT
}
val dayOfWeek: DayOfWeek = DayOfWeek.MON
//Les samedis et dimanches sont bons, sinon mauvais
when (dayOfWeek) {
DayOfWeek.SUN -> println("Good!")
DayOfWeek.SAT -> println("Good!")
else -> println("Bad...")
}
S'il y a deux expressions ou plus, vous pouvez les mettre entre {
} ʻafter
->`.
when {
`conditions` -> { `formule` }
}
Vous ne pouvez pas utiliser la clause break dans when. Pause par défaut. Si vous souhaitez gérer plusieurs conditions à la fois, séparez-les par des virgules.
when (dayOfWeek) {
DayOfWeek.SUN, DayOfWeek.SAT -> println("Good!")
else -> println("Bad...")
}
,
when et
try` sont des expressions au lieu d'instructionsPuisque ʻif,
when et
try` sont des expressions, vous pouvez affecter le résultat à une variable ou le traiter comme la valeur de retour d'une fonction.
val v = if (flag) {
"I like Kotlin!"
} else {
"(T_T)"
}
La dernière expression évaluée est le résultat de if.
Si flag
est vrai,"J'aime Kotlin!"
Donnera l'expression if.
Affecté à la variable «v».
L'exemple ci-dessus a exactement la même utilisation que l'opérateur ternaire Java. Il n'y a pas d'opérateurs ternaires dans kotlin.
// Java
String v = flag ? "I like Kotlin!" : "(T_T)";
Il n'y a pas de «vide» à Kotlin. Utilisez le type ʻUnit` pour représenter une fonction sans valeur de retour.
fun doSomething(): Unit {
// doSomething
}
Il existe des fonctions utiles qui créent des instances de List et Array.
val list = listOf(0, 1, 2)
val empty = emptyList<Int>()
val arr = arrayOf('a', 'b', 'c')
val empty = emptyArray<Char>()
XXXof ()
est une fonction d'argument de longueur variable qui vous permet de décrire les éléments d'une collection.
La fonction ʻemptyXXX () `est utile pour générer des collections vides.
Moule | produire | 空produire |
---|---|---|
Array | arrayOf() | emptyArray() |
List | listOf() | emptyList() |
Set | setOf() | emptySet() |
Map | mapOf() | emptyMap() |
Si l'élément ne peut pas être déduit, vous devez spécifier un paramètre de type.
val numList = listOf<Number>(0.0F, 100, 1_000_000_000_000L)
Il existe deux types principaux de collections Kotlin.
Une collection mutable et une collection immuable.
La fonction ʻadd () qui ajoute un élément et la fonction
remove () `qui le supprime n'existent que dans les collections Mutable.
Immutable | Mutable |
---|---|
List | MutalbeList |
Set | MutableSet |
Map | MutableMap |
La fonction mutableXXXof ()
est utile pour générer des collections Mutable.
val list = mutableListOf(0, 1, 2)
list.add(3)
Contrairement à Java, les fonctions et les variables Kotlin ne doivent pas nécessairement appartenir à une classe.
import com.package
//Fonctions n'appartenant pas à la classe
fun topLevelFunction() {
// do something
}
//Variables n'appartenant pas à la classe
var topLevelVariable = 0
class Hoge {
}
Recommended Posts