Tema 12. Funciones

Explicación de las funciones y su uso en Kotlin

FUNCIÓN

Una función es una pieza de código reutilizable que solo se ejecuta cuando es llamada.

Sintaxis

fun funcion(argumento1: tipo, argumentoN: tipo):tipo_return {
    bloque de código
    return n: tipo_return
}

Un ejemplo completo:

fun suma(x: String, y: String): Int {
    return x.toInt() + y.toInt()
}

Los elementos de la declaración de una función son los siguientes.

  • Nombre de la función -> Es el nombre que eliges para la función. Por convenio se escribe en camelCase.

  • Lista de parámetros -> Datos de entrada para la función. Definidos como nombre: tipo y separados por comas.

  • Tipo de retorno -> Tipo de dato de salida de la función. Si la función retorna un valor es obligatorio definir su tipo.

  • Cuerpo de la función -> Son todas las sentencias que realizan la tarea para llegar al resultado final.

  • Retorno ->Usa la expresión return para devolver el valor.

Llamada a una función

Para llamar a una función utilizamos su nombre seguido de un conjunto de paréntesis (). Dentro de dichos paréntesis es donde se pondrán los parámetros si fueran necesarios.

Función con cuerpo de expresión

Si la función se reduce a una expresión, se puede reducir a función con cuerpo de expresión:

Función sin retorno

También se pueden implementar funciones que no tengan retorno. En este caso, el compilador implementa la función con un retorno por defecto de tipo Unit (equivalente al retorno tipo Void de Java).

PARÁMETROS

Pasar parámetros por nombre

Los parámetros se pueden pasar en Kotlin de la manera que hemos visto en los ejemplos de arriba o indicando el nombre de los parametros que estamos pasando a la función.

Parámetros con valor por defecto

Igual que en otros lenguajes, Kotlin permite incluir un valor por defecto a los parámetros de una función para que lo tomen en caso de que no se pase un valor para dicho parámetro:

Número variable de argumentos

Se puede hacer que un argumento reciba un número arbitrario de elementos. Estos elementos se almacenarán en un Array con el nombre del argumento.

Para ello utilizamos la palabra clave vararg delante del argumento:

AMBITO DE LAS FUNCIONES

Fuente: programandoointentandolo.com

Funciones de nivel superior

Son aquellas que están definidas a nivel de paquete. Es decir, fuera de clases, objetos o interfaces.

Funciones miembro

Las funciones miembro son las funciones que se definen dentro de una clase o un objeto.

Para llamarlas debemos de poner por delante el nombre del objeto objeto.nombreFuncion() o el de la clase si es un método «estatico» (Companion object) y que además de los propios parámetros que pueda tener la función también pueden acceder a las propiedades de la clase.

Funciones locales

Son funciones que están declaradas en otras funciones. Estas funciones pueden acceder a variables que están declaradas en su ámbito o en ámbitos superiores.

VARIABLES DE UNA FUNCIÓN

Variables globales

Aquellas que están creadas en el nivel superior, es decir, a nivel de paquete.

Por regla general, estas suelen ser las const val para poder utilizarlas en cualquier ámbito del programa.

Variables locales

Las variables locales han sido declaradas en el interior de una función o una clase y solo pueden ser utilizadas en este ámbito.

Si yo declaro una variable dentro de un bucle while para controlar el número de iteraciones, me daré cuenta de que esta variable solo se puede utilizar dentro del bucle y, por tanto, no puedo utilizarla como parte de la condición del while.

Esto es el ámbito de una variable.

Last updated