根据地图上的 Golang 文档,如果请求的键不存在,我们将获得值类型的零值。在这种情况下,值类型是 int,所以零值是 0:j := m["root"] // j == 0所以我试图确定一个结构是否存在给定的字符串,我将如何确定这一点?我会检查一个带有零值的空结构吗?这里的比较会是什么样子?type Hello struct{}structMap := map[string]Hello{}j := structMap["example"]if(j==?) { ...}
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
使用特殊的“逗号,确定”形式来说明是否在地图中找到了密钥。Go Spec:索引表达式:
特殊形式的赋值或初始化中使用a的类型映射上的索引表达式map[K]V
v, ok = a[x]
v, ok := a[x]
var v, ok = a[x]
产生一个额外的无类型布尔值。的值ok是true键x是否存在于地图中,false否则。
所以在你的代码中:
type Hello struct{}
structMap := map[string]Hello{}
if j, ok := structMap["example"]; !ok {
// "example" is not in the map
}
- 1 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消