Avatar ·

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

¡Hola a todos! Acabo de empezar a aprender Swift y tengo confusión con el signo de exclamación. He visto que en el código se usa a menudo `!` después de variables, pero no entiendo del todo para qué sirve. Aquí hay un ejemplo que encontré en un libro de texto: ```swift var optionalString: String? = "Hello" print(optionalString!) // Imprime "Hello" ``` Si quito el signo de exclamación, el compilador muestra una advertencia de que `optionalString` debe ser unwrapped. ¿Pero por qué? La variable claramente contiene una cadena. Intenté escribir mi propio código: ```swift var name: String? = "John" let greeting = "Hola, " + name // Error: Value of optional type 'String?' must be unwrapped ``` ¿Por qué Swift no permite simplemente usar el valor? ¿Y qué pasaría si aplico `!` a `nil`? He oído que esto puede causar un crash, pero no entiendo cómo evitarlo. Expliquen, por favor, con ejemplos simples qué hace el signo de exclamación y cuándo usarlo correctamente. Agradeceré una explicación detallada.