Avatar ·

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) é