Avatar ·

¿Qué significa el signo de exclamación (!) en Swift? Problema con los tipos opcionales

¡Hola! Acabo de empezar a aprender Swift y constantemente me encuentro con el signo de exclamación (!) en código ajeno. Por ejemplo, he visto este código: ```swift var name: String! = "Alice" print(name!) let array: [String?] = ["hello", nil, "world"] if let value = array.first { print(value!) // ¿por qué ! aquí? } ``` Entiendo que esto tiene algo que ver con los tipos opcionales (Optionals), pero me confundo. En algunos lugares veo el signo de interrogación (?), en otros el signo de exclamación (!). Me dijeron que ! es "desenvolvimiento forzado" (forced unwrapping), pero no entiendo cuándo es seguro usarlo. Por ejemplo, si escribo: ```swift var optionalNumber: Int? = nil let number = optionalNumber! // ¡la app se cuelga! ``` la aplicación se cae con un error. ¿Para qué sirve un operador tan peligroso? ¿Quizás hay alternativas más seguras? ¿Cómo trabajar correctamente con opcionales en Swift? Explícame, por favor, en detalle y con ejemplos. <<>>

¿Qué son los tipos opcionales?