Etiquetas de argumentos
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 54 de 86.
Swift te da control sobre cómo se leen las llamadas a funciones mediante el uso de etiquetas de argumentos. Una etiqueta de argumento es lo que usas al llamar a la función, mientras que el nombre del parámetro es lo que usas dentro del cuerpo de la función.
Puedes especificar ambos escribiendo la etiqueta del argumento antes del nombre del parámetro:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Salida: Hello, Alice!Aquí, to es la etiqueta del argumento (utilizada al llamar) y name es el nombre del parámetro (utilizado dentro de la función). Esto hace que la llamada se lea de forma más natural: "greet to Alice".
A veces querrás omitir la etiqueta por completo para obtener llamadas más limpias. Usa un guion bajo (_) como etiqueta del argumento:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Salida: 25Sin el guion bajo, tendrías que escribir square(number: 5). El guion bajo elimina ese requisito, haciendo que la llamada sea más sencilla cuando el nombre de la función ya deja claro el propósito.
Desafío
FácilCrea dos funciones que demuestren diferentes técnicas de etiquetas de argumentos:
Función 1: send
- Usa la etiqueta de argumento
messagecon el nombre de parámetrotext(tipoString) - Usa la etiqueta de argumento
tocon el nombre de parámetrorecipient(tipoString) - Devuelve una cadena con el formato:
"Sending '[text]' to [recipient]"
Función 2: double
- Usa un guion bajo
_para omitir la etiqueta del argumento - Nombre del parámetro
number(tipoInt) - Devuelve el número multiplicado por 2
Después de definir ambas funciones, lee dos cadenas y un entero de la entrada, luego llama a ambas funciones e imprime los resultados en líneas separadas.
Recibirás las siguientes entradas:
- Primera línea: el texto del mensaje (por ejemplo,
"Hello") - Segunda línea: el nombre del destinatario (por ejemplo,
"Alice") - Tercera línea: un número para duplicar (por ejemplo,
"7")
Por ejemplo, si las entradas son "Hello", "Alice", y "7", la salida debería ser:
Sending 'Hello' to Alice
14Hoja de referencia
Swift te permite controlar cómo se leen las llamadas a funciones mediante el uso de etiquetas de argumento (argument labels). Se utiliza una etiqueta de argumento al llamar a la función, mientras que el nombre del parámetro se utiliza dentro del cuerpo de la función.
Especifica ambos escribiendo la etiqueta de argumento antes del nombre del parámetro:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Output: Hello, Alice!Aquí, to es la etiqueta de argumento y name es el nombre del parámetro.
Para omitir la etiqueta de argumento y obtener llamadas más limpias, utiliza un guion bajo (_):
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Output: 25Sin el guion bajo, tendrías que escribir square(number: 5).
Pruébalo tú mismo
// Leer entrada
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: Escribe tu código a continuación
// Define la función 'send' con etiquetas de argumento 'message' y 'to'
// Define la función 'double' con la etiqueta de argumento omitida usando '_'
// Llama a ambas funciones e imprime los resultadosEsta 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 de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica