Valores predeterminados
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ía de las veces. En lugar de exigir que quien realiza la llamada lo proporcione cada vez, puedes asignar un valor predeterminado a ese parámetro.
Para establecer un valor predeterminado, usa 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 predeterminados deben colocarse al final de la lista de parámetros. Esto mantiene las llamadas a funciones limpias y fáciles de leer:
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.0Los valores predeterminados hacen que tus funciones sean más flexibles. Funcionan de manera sencilla para los casos comunes y, al mismo tiempo, permiten personalizarlas cuando es necesario.
Desafío
FácilEscribe una función formatGreeting que acepte name, greeting y repeatCount, y devuelva un mensaje de saludo formateado.
La función debe usar valores predeterminados para los parámetros opcionales:
greetingdebe tener como valor predeterminado"Hello"repeatCountdebe tener como valor predeterminado1
Construye una cadena que repita el patrón de saludo el número de veces especificado, separado por espacios.
Parámetros:
name(String): El nombre de la persona (obligatorio)greeting(String): La palabra de saludo (predeterminado:"Hello")repeatCount(Int): Cuántas veces repetir el saludo (predeterminado:1)
Devuelve: Una cadena con el patrón de saludo repetido. Formato: "[greeting], [name]!" repetido repeatCount veces, separado por un solo 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 predeterminados), devuelve "Hello, Bob!".
Prué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 móduloAsignación compuestaRepaso: matemáticas simplesOperadores de comparación7Entrada/salida básica
Función printInterpolación de cadenasEntrada con ReadLineConversión de tiposRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosRepaso: función SigmaRepaso: función de validaciónValores predeterminados13Iteración sobre secuencias
Iteración sobre elementosEl método enumeradoIteración sobre cadenas P1Iteración sobre cadenas P22Variables
Let vs VarAnotaciones de tipoNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: 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 bienvenidaObtención de datos11FizzBuzz con un giro
Descripción del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesenvolver con If LetGuard LetOperador de coalescencia nilRepaso: desenvoltura segura6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Swift