Avatar ·

Por que precisamos de Opcionais Implicitamente Desembrulhados (Implicitly Unwrapped Optionals) se já temos certeza de que o valor existe?

Olá! Comecei a estudar Swift e não consigo entender uma coisa. A documentação diz que Implicitly Unwrapped Optionals (IUO) são opcionais que são automaticamente desembrulhados ao serem usados, se temos certeza de que realmente há um valor. Mas então por que eles são necessários? Por que não usar simplesmente um tipo normal (String, Int, etc.), já que temos certeza de que o valor existe? Aqui está um exemplo que encontrei em um livro: ```swift let assumedString: String! = "Hello, world!" let implicitString: String = assumedString // desembrulhado automaticamente ``` Mas se tenho certeza de que é uma string, por que não escrever simplesmente: ```swift let assumedString: String = "Hello, world!" ``` Qual é a diferença? Ouvi dizer que IUOs são usados para IBOutlet e em alguns outros casos, mas não entendo por que não podemos usar opcionais normais com verificação via `if let` ou `guard let`. Isso não seria mais seguro? Você poderia explicar com exemplos reais quando IUOs são realmente necessários e em que?