Funciones En Kotlin

ANUNCIO
Loading...

En este tutorial aprenderás a como declarar de funciones en Kotlin para ejecutar conjuntos de sentencias como unidad.

¿Qué Es Una Función?

Kotlin es un lenguaje que te permite aplicar estilos de programación funcional en tus aplicaciones. Por ello la función es una herramienta indispensable.

Una función es un conjunto de instrucciones que realizan una tarea específica, empaquetadas como unidad.

Esta puede ser llamada en el lugar donde sea que la necesites para ejecutar las sentencias.

Sintaxis De Declaración

El siguiente ejemplo muestra la sintaxis de declaración de una función en Kotlin:

fun square(x: Int): Int { return x * x }
Lenguaje del código: Kotlin (kotlin)

La anterior función eleva al cuadrado un parámetro entero.

La declaración comienza con la palabra clave fun y se conforma de:

Sintaxis de declaración de una función
  • Nombre de la función − Es el nombre que eliges para la función con el fin de esclarecer su propósito
  • Lista de parámetros − Datos de entrada para la función. Defínelos como nombre:tipo y sepáralos por comas.
  • Tipo de retorno − Tipo de dato de salida de la función. Una función con un cuerpo de bloque de código, siempre debe tener su tipo definido.
  • Cuerpo de la función – Son todas las sentencias que realizan la tarea para llegar al resultado final de retorno. Usa la expresión return para devolver el valor.

Llamar Una Función

La forma de invocar a una función es escribir el nombre en el punto del flujo donde requieras ejecutar las instrucciones y pasarle los argumentos con que se declaró.

Por ejemplo, llama la anterior función así:

fun square(x: Int): Int { return x * x } fun main() { print(square(2)) }
Lenguaje del código: Kotlin (kotlin)

Al ejecutar el programa la salida será 4.

Funciones Con Cuerpo De Expresión

Si tu función retorna tan solo una expresión, puedes reducir su sintaxis a una función con cuerpo de expresión. Donde la expresión es ubicada luego del signo = en línea con la firma de la función.

Por ejemplo:

Determinar el resultado del modelo matemático f(x,y,z) = 3x-2y+z2 en el punto A=(1,0,5):

fun model(x: Int, y: Int, z: Int) = 3 * x - 2 * y + z * z fun main() { println("f(1,0,5)= ${model(1, 0, 5)}") }
Lenguaje del código: Kotlin (kotlin)

El modelo matemático comprende tres variables de entrada, por lo que esos serán el número de parámetros. En la misma línea, construimos la ecuación con operadores aritméticos y así llamarla desde main() con los valores propuestos.

El resultado sería:

f(1,0,5)= 28

La declaración con cuerpo de expresión única, permite que el compilador infiera el tipo y así poder omitirlo de la función.

Por otro lado, IntelliJ IDEA puede hacer la conversión a single-expression body por ti, si despliegas las acciones emergentes en la función.

IntelliJ IDEA Convert to expression body en Kotlin

Retorno Tipo Unit

Unit es la palabra reservada análoga a void en Java. Esto determina que una función no retorna valor.

Ejemplo: Crear una función que imprima si un carácter es una vocal o no.

fun isVowel(c: Char): Unit { when (c) { 'a', 'e', 'i', 'o', 'u' -> println("$c es una vocal") else -> println("$c no es una vocal") } } fun main() { isVowel('v') }
Lenguaje del código: Kotlin (kotlin)

La solución propuesta, usa una expresión when para comprobar si el parámetro de tipo Char coincide con las vocales.

Sin embargo, como no deseamos retornar un valor significativo hacia el exterior, usamos como tipo de retorno Unit.

La salida del programa sería:

v no es una vocal

Omitir tipo Unit − Aunque el compilador de Kotlin no puede realizar inferencias de tipos con funciones con cuerpo de bloques de código, el tipo Unit es una excepción, es posible omitirlo de la declaración debido a su naturaleza.

La anterior función la puedes reescribir sin él:

fun isVowel2(c: Char) { when (c) { 'a', 'e', 'i', 'o', 'u' -> println("$c es una vocal") else -> println("$c no es una vocal") } }
Lenguaje del código: Kotlin (kotlin)

¿Qué Sigue?

Ya has visto como declarar y llamar funciones en Kotlin. Para extender más el conocimiento sobre ellas, ve al tutorial sobre argumentos por defecto y nombrados.

¿Ha sido útil esta publicación?