Waarschijnlijk een beetje algemene vraag, maar de officiële documentatie vermeldt niet eens de pijl-operator (of taalconstructie, ik weet niet welke zin nauwkeuriger is) als een onafhankelijke entiteit.
Het meest voor de hand liggende gebruik is de voorwaardelijke instructie when, waar deze wordt gebruikt om een uitdrukking aan een specifieke voorwaarde toe te kennen:
val greet = when(args[0]) {
"Appul" -> "howdy!"
"Orang" -> "wazzup?"
"Banan" -> "bonjur!"
else -> "hi!"
}
println(args[0] +" greets you: \""+ greet +"\"")
Wat zijn de andere toepassingen en wat zijn ze?
Is er een algemene betekenis van de pijl-operator in Kotlin?
Antwoord 1, autoriteit 100%
De ->
maakt deel uit van de syntaxis van Kotlin (vergelijkbaar met Java’s syntaxis van lambda-expressies) en kan in 3 contexten worden gebruikt:
-
when
uitdrukkingen waarbij het “overeenkomst/voorwaarde” deel van het blok “resultaat/uitvoering” scheidtval greet = when(args[0]) { "Apple", "Orange" -> "fruit" is Number -> "How many?" else -> "hi!" }
-
lambda-expressies waarbij parameters worden gescheiden van de hoofdtekst van de functie
val lambda = { a:String -> "hi!" } items.filter { element -> element == "search" }
-
functietypes waar het parametertypes van resultaattype scheidt, b.v.
comparator
fun <T> sort(comparator:(T,T) -> Int){ }
Details over de Kotlin-grammatica staan in de documentatiein het bijzonder:
Antwoord 2, autoriteit 23%
De ->
is een scheidingsteken. Het is een speciaal symbool dat wordt gebruikt om code met verschillende doeleinden te scheiden. Het kan worden gebruikt om:
-
Scheid de parameters en de hoofdtekst van een lambda-expressie
val sum = { x: Int, y: Int -> x + y }
-
Scheid de parameters en de declaratie van het retourtype in een functietype
(R, T) -> R
-
Scheid de voorwaarde en hoofdtekst van een wanneer-uitdrukkingfiliaal
when (x) { 0, 1 -> print("x == 0 or x == 1") else -> print("otherwise") }
Hier staat het in de documentatie.
Antwoord 3, autoriteit 3%
Van de Kotlin-documenten:
->
scheidt de parameters en de hoofdtekst van een lambda-expressie
scheidt de parameters en de declaratie van het retourtype in een functie
typscheidt de voorwaarde en de hoofdtekst van een wanneer-expressiefiliaal