Funciones de Orden Superior
Explicación del concepto de funciones de orden superior y su aplicación.
Last updated
Explicación del concepto de funciones de orden superior y su aplicación.
Last updated
Una función de orden superior, es una función que puede recibir como argumento una o más funciones y/o retornar una función como resultado.
Esto es posible ya que el lenguaje de programación Kotlin incluye en su gramática tipos de datos función.
Indirectamente se utilizan mucho ya que las funciones de orden superior son el origen de las funciones lambda que veremos en el siguiente tema.
La sintaxis de una función de orden superior sigue la siguiente sintaxis:
Explicación de código
En el ejemplo anterior tenemos una función con dos argumentos normales pero el tercer argumento es una función.
El argumento función se declara con los tipos de sus argumentos entre paréntesis, una flecha y el tipo del return.
Es indispensable hacer referencia al tipo del return del argumento función. Si no es un tipo explícito, utilizamos el tipo Unit.
Por último, como todas las funciones, el tipo del return de la función como tal.
Como puede ver, la función calculadora() recibe dos Int y una función y despues aplica dicha función sobre ambos Int.
Las cuatro funciones de las operaciones (suma, resta, mult y divis), son válidas para ser pasadas como argumento a la función calculadora() ya que tienen dos argumentos de tipo Int y devuelven un tipo Int tambien.
Por tanto, podemos llamar a la función calculadora con ellas:
El operador ::
Se utiliza para la reflexión en Kotlin. (En enlace es externo pero muy útil)
En este caso, se utiliza la expresión ::nombreFuncion
para acceder a su referencia y pasarla en lugares que permitan literales de función.