O que é null/nil em Swift e como trabalhar com ele?
Olá a todos! Estou estudando Swift e me deparei com o conceito de null/nil. Em outras linguagens (por exemplo, Java, C#), estou acostumado com referências null e NullPointerException. Mas em Swift, pelo que entendi, nil não é um ponteiro, mas sim a ausência de valor para tipos opcionais (Optional).
Tenho um exemplo simples: estou tentando obter o nome de um usuário de um dicionário, mas se a chave não existir, o aplicativo trava.
let user: [String: Any] = ["name": "Alice"]
let name = user["age"] as! String // crash, se a chave não existir
print(name)Tentei usar if let e guard let, mas não entendo completamente como lidar com nil em diferentes situações. Por exemplo:
- Qual é a diferença entre Optional e forced unwrapping?
- Quando usar ?? (nil-coalescing) em vez de if let?
- Uma variável comum (não Optional) pode ser nil?
- Como evitar crashes ao trabalhar com JSON e Codable?
Espero obter uma explicação clara da filosofia do nil em Swift e das best practices para trabalhar com segurança.