Argumentos con nombre
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 58 de 93.
Al llamar a una función con varios parámetros, normalmente pasas los argumentos exactamente en el orden en que están definidos. Pero Kotlin ofrece una alternativa más clara: argumentos con nombre.
Con los argumentos con nombre, especificas a qué parámetro pertenece cada valor usando el nombre del parámetro seguido de =:
fun createProfile(name: String, age: Int, city: String) {
println("$name, $age, from $city")
}
fun main() {
createProfile(name = "Alice", age = 25, city = "Paris")
}
// Salida: Alice, 25, de ParísEsto hace que tu código sea más legible, especialmente cuando una función tiene varios parámetros del mismo tipo. Compara estas dos llamadas:
// Sin argumentos con nombre - ¿qué significan estos números?
calculateArea(10, 5, 3)
// Con argumentos con nombre - ¡mucho más claro!
calculateArea(length = 10, width = 5, height = 3)Los argumentos con nombre también te permiten pasar valores en el orden que prefieras:
fun greet(firstName: String, lastName: String) {
println("Hello, $firstName $lastName!")
}
fun main() {
greet(lastName = "Smith", firstName = "John")
}
// Salida: Hello, John Smith!Puedes mezclar argumentos posicionales y con nombre, pero una vez que uses un argumento con nombre, todos los argumentos siguientes también deberían tener nombre para evitar confusiones.
Desafío
IntermedioSe te proporciona la siguiente función:
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}Lee tres entradas: el título de un libro (String), el nombre de un autor (String) y el año de publicación (Int).
Llama a la función formatBook usando argumentos con nombre en este orden específico: year, title, author.
Por ejemplo, si las entradas son:
1984
George Orwell
1949La salida debe ser:
"1984" by George Orwell (1949)Pruébalo tú mismo
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}
fun main() {
val title = readLine()!!
val author = readLine()!!
val year = readLine()!!.toInt()
// TODO: Llama a formatBook usando argumentos nombrados en este orden: year, title, author
}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