operator operadores logical elvis operators kotlin

operators - operadores - operator ? kotlin



¿Qué hace el operador de flecha(“->”) en Kotlin? (1)

El -> es parte de la sintaxis de Kotlin (similar a la sintaxis de las expresiones lambda de Java) y se puede usar en 3 contextos:

  • when expresiones donde separa la parte "coincidencia / condición" del bloque "resultado / ejecución"

    val greet = when(args[0]) { "Apple", "Orange" -> "fruit" is Number -> "How many?" else -> "hi!" }

  • Expresiones lambda donde separa los parámetros del cuerpo de la función.

    val lambda = { a:String -> "hi!" } items.filter { element -> element == "search" }

  • tipos de funciones donde separa los tipos de parámetros del tipo de resultado, por ejemplo, comparator

    fun <T> sort(comparator:(T,T) -> Int){ }

Los detalles sobre la gramática de Kotlin se encuentran en la documentación en particular:

Probablemente sea una pregunta un poco amplia, pero la documentación oficial ni siquiera menciona al operador de flecha (o construcción de lenguaje, no sé qué frase es más precisa) como una entidad independiente.

El uso más obvio es la instrucción condicional cuando, que se utiliza para asignar una expresión a una condición específica:

val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!" else -> "hi!" } println(args[0] +" greets you: /""+ greet +"/"")

¿Cuáles son los otros usos, y qué hacen? ¿Hay un significado general del operador de flecha en Kotlin?