【发布时间】:2014-01-15 21:49:00
【问题描述】:
假设我有一张这样的地图:
m := map[string]interface{}{}
现在我得到一个字符串"a",我想知道m["a"]中是否有值,我怎么知道?
正如我现在所看到的,m["a"] 永远不会是 nil,所以我无法将其与 nil 进行比较以查看是否有任何内容。此外,没有一个名为 undefined 的关键字可以做到这一点..
【问题讨论】:
假设我有一张这样的地图:
m := map[string]interface{}{}
现在我得到一个字符串"a",我想知道m["a"]中是否有值,我怎么知道?
正如我现在所看到的,m["a"] 永远不会是 nil,所以我无法将其与 nil 进行比较以查看是否有任何内容。此外,没有一个名为 undefined 的关键字可以做到这一点..
【问题讨论】:
map 访问返回两个值,第二个是布尔值,告诉您是否有值。
你可以使用这个标准的成语:
if elm, ok := m["a"]; ok {
// there's an element
} else {
// no element
}
【讨论】: