Avatar ·

O que é Optional (tipo opcional) em Swift e para que serve?

Olá a todos! Acabei de começar a estudar Swift e me deparei com um conceito que ainda não entendo completamente — Optional (valores opcionais). Em outras linguagens, como Java ou C++, estou acostumado que uma variável pode simplesmente ser igual a null, e isso é normal. Mas em Swift é diferente: o compilador reclama constantemente se eu tento atribuir nil a uma variável comum. Aqui está um exemplo que me confunde. Estou escrevendo um aplicativo simples de notas e quero que o campo com o texto da nota possa estar vazio (nil), se o usuário não digitou nada: ```swift var noteTitle: String = nil // Erro: Nil cannot be assigned to type 'String' ``` O compilador dá um erro. Eu entendo que preciso usar o ponto de interrogação: ```swift var noteTitle: String? = nil // Assim funciona ``` Mas então fico confuso ao trabalhar com esse valor. Por exemplo, se quero exibir o comprimento da string ou concatená-la com outra string, o compilador reclama novamente: ```swift var noteTitle: String? = "Minha nota" pr