English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Funciones en Kotlin

En este artículo, aprenderá sobre las funciones. ¿Qué es una función, su sintaxis y cómo crear funciones de usuario en Kotlin?

En la programación, una función es un grupo de instrucciones relacionadas que ejecutan una tarea específica.

Las funciones se utilizan para descomponer programas grandes en bloques modulares más pequeños. Por ejemplo, si necesita crear círculos y colorearlos según la entrada del usuario, puede crear dos funciones para resolver este problema:

  • La función createCircle() - Usado para crear círculos

  • La función colorCircle() - Usado para rellenar colores

Dividir un programa complejo en componentes más pequeños hace que nuestro programa sea más organizado y más fácil de gestionar.

Además, evita la repetición y hace que el código sea reusable.

Tipo de función

Según si es una función definida por el usuario o una función de la biblioteca estándar, hay dos tipos de funciones:

  • Funciones de biblioteca estándar de Kotlin

  • Función definida por el usuario

Funciones de biblioteca estándar de Kotlin

Las funciones de biblioteca son funciones integradas en Kotlin que se pueden usar en cualquier momento. Por ejemplo,

  • print() es una función de biblioteca que puede imprimir mensajes en la salida de flujo estándar (monitor).

  • sqrt() devuelve la raíz cuadrada del número (valor Double)

fun main(args: Array<String>) {
    var número = 5.5
    print("Resultado = ${Math.sqrt(number)}")
}

Al ejecutar este programa, la salida será:

Resultado = 2.345207879911715

Esto esBiblioteca estándar de Kotlinenlaces, para que los consulte.

Función definida por el usuario

Como se mencionó anteriormente, puede crear funciones usted mismo. Estas funciones se llaman funciones definidas por el usuario.

¿Cómo crear una función definida por el usuario en Kotlin?

Antes de usar (llamar) una función, debe definirla primero.

La forma de definir una función en Kotlin es la siguiente:

fun callMe() {
    //Cuerpo de la función
}

Para definir una función en Kotlin, utilice la palabra clave fun. Luego sigue el nombre de la función (Identificador)。 Aquí, el nombre de la función es callMe.

En el programa superior, los paréntesis ( ) están vacíos. Esto significa que la función no acepta ningún parámetro. En la parte posterior de este artículo, aprenderá sobre parámetros.

El código dentro de los corchetes { } es el cuerpo de la función.

¿Cómo llamar a una función?

Debe llamar a esta función para ejecutar código dentro de la función. Aquí está cómo hacerlo:

callme()

Esta declaración llama a la función callMe() declarada anteriormente.

Ejemplo: programa de función simple

fun callMe() {
    println("Se imprime desde la función callMe().")
    println("Esto es genial (todavía se está imprimiendo desde adentro).")
}
fun main(args: Array<String>) {
    callMe()
    println("Se realiza una impresión externa desde la función callMe().")
}

Al ejecutar este programa, la salida será:

Se imprime desde la función callMe().
Esto es genial (todavía se está imprimiendo desde adentro).
Se realiza una impresión externa desde la función callMe().

La función callMe() del código superior no acepta ningún parámetro.

Además, esta función no devuelve ningún valor (el tipo de retorno es Unit).

Veamos otro ejemplo de función. Esta función aceptará parámetros y devolverá un valor.

Ejemplo: usar una función para sumar dos números

fun addNumbers(n1: Double, n2: Double): Int {
    val sum = n1 + n2
    val sumInteger = sum.toInt()
    return sumInteger
}
fun main(args: Array<String>) {
    val number1 = 12.2
    val number2 = 3.4
    val result: Int
    result = addNumbers(number1, number2)
    println("result = $result")
}

Al ejecutar este programa, la salida será:

result = 15

¿Cómo funcionan las funciones con parámetros y valor de retorno?

Aquí, durante la llamada a la función, se pasan dos parámetros de tipo Double number1y number2Pasan al la función addNumbers(). Estos parámetros se denominan parámetros reales (o parámetros reales).

result = addNumbers(number1, number2)

El parámetro n1y n2Acepta los parámetros pasados (en la definición de la función). Estos parámetros se denominan parámetros formales (o parámetros formales).

En Kotlin, los parámetros se separan por comas. Del mismo modo, los tipos de los parámetros formales deben especificarse explícitamente.

Nota: Los tipos de datos de los parámetros reales y formales deben coincidir, es decir, el tipo de datos del primer parámetro real debe coincidir con el tipo del primer parámetro formal. Del mismo modo, el tipo del segundo parámetro real debe coincidir con el tipo del segundo parámetro formal, y así sucesivamente.

Aquí,

return sumInteger

Es una instrucción return. Este código termina la función addNumbers(), y el control se desplaza a la función main().

En el programa, sumInteger se obtiene de la función addNumbers(). Este valor se asigna a la variable result.

Nota:

  • sumInteger y result son de tipo Int.

  • El tipo de retorno de la función se especifica en la definición de la función.

    //El tipo de retorno es Int
    fun addNumbers(n1: Double, n2: Double): Int {
        ... .. ...
    }

Si la función no devuelve ningún valor, su tipo de retorno es Unit. Si el tipo de retorno es Int, se puede especificar el tipo de retorno en la definición de la función.

Ejemplo: mostrar el nombre usando una función

fun main(args: Array<String>) {
    println(getName("John", "Doe"))
}
fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

Al ejecutar este programa, la salida será:

John Doe

Aquí, la función getName() acepta dos parámetros de tipo String y devuelve un String.

Si la función devuelve una expresión única (como se muestra en el ejemplo anterior), se puede omitir el cuerpo de la función entre llaves {} y especificar el sujeto después del símbolo =.

En este caso, la declaración explícita del tipo de retorno es opcional, ya que el tipo de retorno puede ser inferido por el compilador. En el ejemplo anterior, puede reemplazar

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

Equivalente a:

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

Este artículo es una breve introducción a las funciones en Kotlin.