Icono del sitio Develou

Funciones Anónimas En Kotlin

En este tutorial verás el uso de funciones anónimas en Kotlin como alternativa para pasar funciones como parámetros.

Funciones Anónimas

Las funciones anónimas son literales de función, al igual que las funciones lambda, que te permiten tratarlas como valores con el fin de representar tipos función.

Su objetivo es permitirte pasar bloques de código a funciones de orden superior pero con la capacidad de retornar localmente su resultado.

Al declarar una función anónima ten en cuenta las siguientes características:

La declaración al igual que las funciones nombradas, llevan la palabra fun junto a toda la cabecera y luego sigue el bloque de código correspondiente. Por ejemplo:

numbers.filter(
    fun(number): Boolean {
        return number > 5
    }
)

Ejemplo De Funciones Anónimas

Considera una lista de números enteros llamada numbers, para la cual deseamos contar la cantidad de apariciones del número 2.

Una de las formas de contar las apariciones es el uso de la función de la librería estándar count(), la cual recibe un tipo función que puede ser expresado por una función anónima o lambda.

fun main() {
    val numbers = listOf(2, 5, 2, 6, 4)

    val result = numbers.count(fun(number): Boolean {
        return number == 2
    })
    
    print(result) // 2
}

La función anónima anterior es pasada a la función count(), ya que esta recibe un tipo función T -> Boolean. Donde T recibe el argumento de tipo Int, ya que numbers es una lista de enteros.

count cuenta la cantidad de apariciones que satisfagan al predicado, en este caso se usa la expresión return para retornar el resultado de la operación de comparación entre el parámetro number y el literal entero 2.

fun(number): Boolean {
return number == 2
}

De esta forma la función internamente ejecuta a la función anónima para llevar la cuenta de la cantidad de veces que la condición es verdadera. Es decir, 2 apariciones del número 2 en la lista.

Salir de la versión móvil