Encadenamiento de valores predeterminados
Combine varios valores alternativos de forma limpia.
Encadenamiento de valores predeterminados es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.
Más de un valor alternativo
A veces tiene varias fuentes opcionales y quiere usar la primera que no sea nil. Puede encadenar varios operadores ??.
let primary: String? = nil
let secondary: String? = "Backup"
let name = primary ?? secondary ?? "Default"
print(name)Cómo se lee el encadenamiento
Lea a ?? b ?? c así: use a si no es nil; en caso contrario, b; y, si tampoco, c. La evaluación se detiene en el primer valor encontrado.
let a: Int? = nil
let b: Int? = nil
let c = 7
print(a ?? b ?? c)Gana el primer valor no nil
En cuanto una opción proporciona un valor, las demás se ignoran. Aquí gana secondary y nunca se alcanza el valor predeterminado final.
let primary: Int? = nil
let secondary: Int? = 50
let fallback = 0
print(primary ?? secondary ?? fallback)Todos opcionales hasta el último
En un encadenamiento, normalmente todos los operandos salvo el último son opcionales. El último es el valor predeterminado no opcional garantizado.
let nick: String? = nil
let full: String? = nil
let result: String = nick ?? full ?? "Anonymous"
print(result)Evaluación con cortocircuito
Al igual que && y ||, el encadenamiento de ?? utiliza evaluación con cortocircuito. Una vez encontrado un valor, las expresiones posteriores no se evalúan.
func makeDefault() -> Int {
print("default computed")
return 0
}
let found: Int? = 9
print(found ?? makeDefault())Asociatividad por la derecha
El operador ?? es asociativo por la derecha, por lo que a ?? b ?? c se agrupa como a ?? (b ?? c). Este es exactamente el comportamiento que se busca para los valores alternativos.
let x: Int? = nil
let y: Int? = nil
let z: Int? = 3
print(x ?? (y ?? (z ?? 0)))Valores predeterminados de configuración por capas
El encadenamiento resulta especialmente útil para una configuración por capas: primero el ajuste del usuario, después el de la aplicación y, por último, un valor predeterminado codificado.
let userTheme: String? = nil
let appTheme: String? = "light"
let theme = userTheme ?? appTheme ?? "system"
print(theme)Combinación con conversiones
Puede encadenar conversiones que pueden fallar con un valor predeterminado final para analizar entradas de forma robusta.
let raw: String? = nil
let parsed = raw.flatMap { Int($0) } ?? 0
print(parsed)Búsquedas en diccionarios dentro de un encadenamiento
Puede encadenar varias búsquedas en diccionarios para usar la primera clave disponible.
let prefs = ["color": "blue"]
let pick = prefs["accent"] ?? prefs["color"] ?? "gray"
print(pick)Mantenga cortos los encadenamientos
Dos o tres valores alternativos se leen bien. Si se encuentra encadenando muchos, considere extraer la lógica a una función para mejorar la claridad.
let one: String? = nil
let two: String? = nil
let three = "C"
print(one ?? two ?? three)Tipo de resultado de un encadenamiento
El resultado final de un encadenamiento no es opcional siempre que el último operando no sea opcional. Esto permite usar el valor de forma segura de inmediato.
let v1: Int? = nil
let v2: Int? = 4
let total: Int = (v1 ?? v2 ?? 0) + 1
print(total)Comprobación rápida
Pruebe los encadenamientos de valores alternativos.
Resumen: encadenamiento de valores predeterminados
Encadene operadores ?? para probar varios opcionales en orden y recurrir a un valor predeterminado final. Gana el primer valor no nil, la evaluación utiliza cortocircuito y el resultado no es opcional.
let p: String? = nil
let s: String? = "ok"
print(p ?? s ?? "none")Preguntas frecuentes
¿La lección «Encadenamiento de valores predeterminados» es gratis?
Sí — el texto completo de «Encadenamiento de valores predeterminados» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Encadenamiento de valores predeterminados»?
Combine varios valores alternativos de forma limpia. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Swift Academy?
No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Encadenamiento de valores predeterminados»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Swift Academy?
Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El operador de coalescencia de nil
- Encadenamiento de valores predeterminados
- Valores predeterminados en parámetros de funciones
- Subíndices predeterminados de diccionarios