6. Funciones: Bloques reutilizables
Sintaxis básica
Las funciones se definen con fun. Kotlin las hace concisas y expresivas:
funciones-basicas.kt
KOTLIN
1 // Función con retorno
2 fun sumar(a: Int, b: Int): Int {
3 return a + b
4 }
5
6 // Expresión de función (una sola línea)
7 fun multiplicar(a: Int, b: Int) = a * b
8
9 // Sin retorno (Unit implícito)
10 fun saludar(nombre: String) {
11 println("¡Hola, $nombre!")
12 }
13
14 fun main() {
15 println(sumar(3, 5)) // 8
16 println(multiplicar(4, 2)) // 8
17 saludar("Kotlin") // ¡Hola, Kotlin!
18 }
Valores por defecto y argumentos con nombre
Puedes dar valores por defecto y llamar funciones nombrando los argumentos:
parametros-default.kt
KOTLIN
1 fun saludar(nombre: String = "Mundo", veces: Int = 1) {
2 repeat(veces) {
3 println("¡Hola, $nombre!")
4 }
5 }
6
7 fun main() {
8 saludar() // ¡Hola, Mundo!
9 saludar("Ana") // ¡Hola, Ana!
10 saludar(veces = 3) // ¡Hola, Mundo! x3
11 saludar("Kotlin", veces = 2) // ¡Hola, Kotlin! x2
12 }
Funciones de orden superior (preview)
Las funciones pueden ser parámetros de otras funciones:
funciones-orden-superior.kt
KOTLIN
1 fun ejecutar(nombre: String, accion: () -> Unit) {
2 println("Antes de $nombre")
3 accion()
4 println("Después de $nombre")
5 }
6
7 fun main() {
8 ejecutar("tarea") {
9 println(" Haciendo la tarea...")
10 }
11 }
💻 Misión
Crea una función `calcularArea` que reciba base y altura (con valor por defecto 10) y retorne el área de un rectángulo. Llama a la función de 3 formas distintas.
👁️ Ver solución sugerida
main.kt
KOTLIN
1 fun calcularArea(base: Int = 10, altura: Int = 10): Int {
2 return base * altura
3 }
4
5 fun main() {
6 println(calcularArea()) // 100
7 println(calcularArea(5)) // 50
8 println(calcularArea(3, 7)) // 21
9 }