Avatar ·

如何检查 Go 中的 map 是否包含某个键?

大家好!我刚开始学习 Go,遇到了关于 map 的问题。假设我创建了一个按 ID 存储用户的 map: ```go users := map[int]string{ 1: "Alice", 2: "Bob", } ``` 我需要检查是否存在 ID 为 3 的用户。我尝试这样做: ```go if users[3] != "" { fmt.Println("User found") } else { fmt.Println("User not found") } ``` 但这似乎不对,因为如果值是空的(例如用户名为空),检查就会出错。此外,我听说在 Go 中访问不存在的键时会返回该值类型的零值(zero value)。对于字符串是空字符串,对于数字是 0,对于布尔值是 false。但如何区分键不存在和实际零值的情况?有没有一种惯用的方法来检查 map 中是否存在某个键?我读到在其他语言(例如 Python)中有 `in` 操作符,但在 Go 中我没有找到。