Funciones de una sola expresión
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 60 de 93.
Cuando una función contiene una sola expresión, Kotlin ofrece una sintaxis más concisa. En lugar de usar llaves y la palabra clave return, puedes usar un signo igual seguido directamente de la expresión.
Aquí tienes una función normal comparada con su equivalente de una sola expresión:
// Función regular
fun double(n: Int): Int {
return n * 2
}
// Función de expresión única
fun double(n: Int): Int = n * 2Ambas versiones funcionan de forma idéntica, pero la segunda es más corta y fácil de leer para operaciones sencillas.
Kotlin incluso puede inferir el tipo de retorno de las funciones de una sola expresión, lo que te permite omitirlo por completo:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Esta sintaxis también funciona perfectamente con expresiones condicionales:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Las funciones de una sola expresión son ideales para cálculos, validaciones y transformaciones sencillos. Mantienen tu código limpio y centrado en lo que hace la función, en lugar de en los mecanismos para devolver un valor.
Desafío
IntermedioEscribe una función calculateDiscount que tome price y percentage y devuelva el precio con descuento.
Usa la sintaxis de función de una sola expresión (con = en lugar de llaves y return) para calcular el precio final después de aplicar el descuento.
El precio con descuento se calcula así: price - (price * percentage / 100)
Parámetros:
price(Double): El precio originalpercentage(Int): El porcentaje de descuento (0-100)
Devuelve: El precio después de aplicar el descuento (Double)
Pruébalo tú mismo
fun calculateDiscount(price: Double, percentage: Int): Double {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Kotlin