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