Valores por defecto
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 57 de 86.
A veces, un parámetro tiene un valor que se utiliza la mayor parte del tiempo. En lugar de obligar al llamador a proporcionarlo cada vez, puedes asignar un valor por defecto a ese parámetro.
Para establecer un valor por defecto, utiliza el operador de asignación (=) después del tipo del parámetro:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Salida: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Salida: Hi, Bob!Al llamar a la función, puedes omitir los parámetros que tienen valores predeterminados. Swift usará el valor predeterminado automáticamente. Pero si necesitas un valor diferente, aún puedes proporcionar uno explícitamente.
Los parámetros con valores por defecto deben colocarse al final de la lista de parámetros. Esto mantiene las llamadas a las funciones limpias y legibles:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Resultado: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Resultado: 120.0Los valores predeterminados hacen que tus funciones sean más flexibles: funcionan de manera sencilla para los casos comunes, permitiendo al mismo tiempo la personalización cuando sea necesario.
Desafío
FácilEscribe una función formatGreeting que reciba name, greeting y repeatCount y devuelva un mensaje de saludo formateado.
La función debe utilizar valores por defecto para los parámetros opcionales:
greetingdebe tener como valor por defecto"Hello"repeatCountdebe tener como valor por defecto1
Construye una cadena que repita el patrón de saludo el número especificado de veces, separadas por espacios.
Parámetros:
name(String): El nombre de la persona (requerido)greeting(String): La palabra de saludo (por defecto:"Hello")repeatCount(Int): Cuántas veces se debe repetir el saludo (por defecto:1)
Devuelve: Una cadena con el patrón de saludo repetido. Formato: "[greeting], [name]!" repetido repeatCount veces, separado por un único espacio (String)
Por ejemplo, si name es "Alice", greeting es "Hi" y repeatCount es 2, la función devuelve "Hi, Alice! Hi, Alice!".
Si se llama solo con name como "Bob" (usando los valores por defecto), devuelve "Hello, Bob!".
Hoja de referencia
Para establecer un valor predeterminado para un parámetro, utiliza el operador de asignación (=) después del tipo del parámetro:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Salida: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Salida: Hi, Bob!Al llamar a una función, puedes omitir los parámetros que tienen valores predeterminados. Swift utilizará el valor predeterminado automáticamente, pero aún puedes proporcionar un valor diferente explícitamente si es necesario.
Los parámetros con valores predeterminados deben colocarse al final de la lista de parámetros:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Salida: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Salida: 120.0Pruébalo tú mismo
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// 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 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