¿Qué es null/nil en Swift y cómo trabajar con él?
¡Hola a todos! Estoy aprendiendo Swift y me encontré con el concepto de null/nil. En otros lenguajes (por ejemplo, Java, C#) estoy acostumbrado a null references y NullPointerException. Pero en Swift, según entendí, nil no es un puntero, sino la ausencia de valor para tipos opcionales (Optional).
Tengo un ejemplo simple: intento obtener el nombre de usuario de un diccionario, pero si la clave no existe, la aplicación se cae.
let user: [String: Any] = ["name": "Alice"]
let name = user["age"] as! String // crash si la clave no existe
print(name)Probé usar if let y guard let, pero no entiendo completamente cómo manejar nil correctamente en diferentes situaciones. Por ejemplo:
- ¿Cuál es la diferencia entre Optional y forced unwrapping?
- ¿Cuándo usar ?? (nil-coalescing) en lugar de if let?
- ¿Puede una variable normal (no Optional) ser nil?
- ¿Cómo evitar crashes al trabajar con JSON y Codable?
Espero obtener una explicación clara de la filosofía de nil en Swift y las mejores prácticas para trabajar de forma segura.