Avatar ·

O que significa o ponto de exclamação (!) em Swift? Problema com tipos opcionais

Olá! Acabei de começar a aprender Swift e constantemente me deparo com o ponto de exclamação (!) em código alheio. Por exemplo, vi este código: ```swift var name: String! = "Alice" print(name!) let array: [String?] = ["hello", nil, "world"] if let value = array.first { print(value!) // por que ! aqui? } ``` Eu entendo que isso tem a ver com tipos opcionais (Optionals), mas fico confuso. Em alguns lugares vejo o ponto de interrogação (?), em outros o ponto de exclamação (!). Disseram-me que ! é "desembrulho forçado" (forced unwrapping), mas não entendo quando é seguro usar. Por exemplo, se eu escrever: ```swift var optionalNumber: Int? = nil let number = optionalNumber! // crash do app! ``` o aplicativo trava com um erro. Para que serve um operador tão perigoso? Talvez existam alternativas mais seguras? Como trabalhar corretamente com opcionais em Swift? Explique, por favor, detalhadamente e com exemplos. <<>>

O que são tipos opcionais