Qual é a diferença entre `let` e `var` em Swift? Quando usar cada um?
Olá a todos! Comecei a estudar Swift recentemente e surgiu uma dúvida fundamental que parece perseguir todos os iniciantes. Não consigo entender completamente a diferença entre `let` e `var`.
Li que `let` é uma constante e `var` é uma variável. Mas na prática, me confundo. Por exemplo, escrevi este código:
```swift
var myName = "Alexey"
myName = "Ivan"
print(myName) // Imprime "Ivan" — tudo claro, é uma variável
```
Depois tentei o mesmo com `let`:
```swift
let myAge = 25
myAge = 30 // Erro: Cannot assign to value: 'myAge' is a 'let' constant
```
Aqui tudo faz sentido — o compilador reclama. Mas então li que `let` pode ser indefinido até o primeiro uso. Tentei fazer assim:
```swift
let userName: String
// Algum código...
userName = "Peter" // Isso funciona?
```
E funcionou! Então qual é o sentido? Por que não usar sempre `var`? O que me confunde especialmente é que, em exemplos no Stack Overflow e na documentação oficial