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
Un ejemplo completo:
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.
Esto tiene como beneficio que se pueden desordenar, sin embargo, si quiero pasar solo algunos de los parámetros con nombre y otros no, solo puedo pasarlos de manera ordenada para evitar errores de compilació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
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