如何检查 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 中我没有找到。