Probablement une question un peu large, mais la documentation officielle ne mentionne même pas l'opérateur flèche (ou la construction du langage, je ne sais pas quelle phrase est la plus précise) en tant qu'entité indépendante.
L'utilisation la plus évidente est l'instruction conditionnelle when, où elle est utilisée pour affecter une expression à une condition spécifique:
val greet = when(args[0]) {
"Appul" -> "howdy!"
"Orang" -> "wazzup?"
"Banan" -> "bonjur!"
else -> "hi!"
}
println(args[0] +" greets you: \""+ greet +"\"")
Quelles sont les autres utilisations et que font-elles? Y a-t-il une signification générale de l'opérateur de flèche dans Kotlin?
Le ->
fait partie de la syntaxe de Kotlin (similaire à Java syntaxe des expressions lambda ) et peut être utilisée dans 3 contextes:
when
expressions où il sépare la partie "correspondance/condition" du bloc "résultat/exécution"
val greet = when(args[0]) {
"Apple", "Orange" -> "fruit"
is Number -> "How many?"
else -> "hi!"
}
expressions lambda où il sépare les paramètres du corps de la fonction
val lambda = { a:String -> "hi!" }
items.filter { element -> element == "search" }
types de fonctions où il sépare les types de paramètres du type de résultat, par exemple comparator
fun <T> sort(comparator:(T,T) -> Int){
}
Les détails sur la grammaire Kotlin sont dans la documentation en particulier:
Le ->
est un séparateur . C'est un symbole spécial utilisé pour séparer le code à des fins différentes. Il peut être utilisé pour:
Séparez les paramètres et le corps d'un expression lambda
val sum = { x: Int, y: Int -> x + y }
Séparez les paramètres et retournez la déclaration de type dans un type de fonction
(R, T) -> R
Séparez la condition et le corps d'une branche quand expression
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
Le voici dans la documentation .