Como verificar se um map contém uma chave específica em Go?
Olá a todos! Comecei a estudar Go recentemente e tive um problema ao verificar a presença de uma chave em um map. Em Python, estou acostumado a escrever `if key in dict:`, mas em Go não existe essa construção.
Suponha que eu tenha um map de usuários:
```go
users := map[int]string{
1: "Alice",
2: "Bob",
3: "Charlie",
}
```
Preciso verificar se existe um usuário com ID = 4. Tentei este código:
```go
if users[4] != "" {
fmt.Println("User found!")
}
```
Mas isso não funciona se o valor da chave for uma string vazia. Por exemplo, se eu adicionar `4: ""`, meu código não conseguirá distinguir entre a ausência da chave e o valor vazio. O mesmo acontece com maps numéricos: se o valor for 0, a verificação também falha.
Sei que em Go, ao acessar uma chave inexistente, é retornado o valor zero do tipo. Mas como verificar corretamente se uma chave existe em um map, sem o risco de obter um falso positivo ou falso negativo? Estou especialmente interessado no caso em que o valor zero (0, "", false) é
No answers yet.
Faça login para deixar uma resposta
Blogs