Como verificar se um map contém uma chave em Go?
Olá a todos! Comecei a estudar Go recentemente e tive um problema com mapas (map). Suponha que eu crie um mapa armazenando usuários por seus IDs:
```go
users := map[int]string{
1: "Alice",
2: "Bob",
}
```
Preciso verificar se um usuário com ID, por exemplo, 3, existe. Tentei fazer assim:
```go
if users[3] != "" {
fmt.Println("User found")
} else {
fmt.Println("User not found")
}
```
Mas isso parece errado, porque se o valor for vazio (por exemplo, se o usuário tiver um nome vazio), a verificação falhará. Além disso, ouvi dizer que em Go, ao acessar uma chave inexistente, é retornado o valor zero (zero value) para o tipo do valor. Para strings é uma string vazia, para números é 0, para booleanos é false. Mas como então distinguir a ausência de uma chave de um valor zero real? Existe alguma maneira idiomática de verificar se uma chave existe em um map? Li que em outras linguagens (como Python) existe o operador `in`, mas não encontrei algo assim em Go.
No answers yet.
Faça login para deixar uma resposta