Avatar ·

O que significa o ponto de exclamação na linguagem Swift? Problema com tipos opcionais

Olá a todos! Acabei de começar a estudar Swift e fiquei confuso com o ponto de exclamação. Vi que no código o `!` é frequentemente usado após variáveis, mas não entendo completamente para que serve. Aqui está um exemplo que encontrei no livro: ```swift var optionalString: String? = "Hello" print(optionalString!) // Exibe "Hello" ``` Se eu remover o ponto de exclamação, o compilador emite um aviso de que `optionalString` precisa ser desembrulhado. Mas por quê? Afinal, a variável claramente contém uma string. Tentei escrever meu próprio código: ```swift var name: String? = "John" let greeting = "Olá, " + name // Erro: Value of optional type 'String?' must be unwrapped ``` Por que o Swift não permite simplesmente usar o valor? E o que acontece se eu aplicar `!` a `nil`? Ouvi dizer que isso pode causar um crash, mas não entendo como evitar. Explique, por favor, com exemplos simples, o que o ponto de exclamação faz e quando usá-lo corretamente. Ficarei grato por uma explicação detalhada.