给定这段代码:
var a map[string][][]int
var aa map[string][][]int = map[string][][]int{"a": [][]int{{10, 10}, {20, 20}}}
var bb map[string][][]int = map[string][][]int{"b": [][]int{{30, 30}, {40, 40}}}
fmt.Println(aa) // >> map[a:[[10 10] [20 20]] b:[[30 30] [40 40]]]
我怎么知道 '[30, 30]' 是否在 'aa' 中?
我想检查“aa”是否有“[30 30]”。
最佳答案
您必须遍历 map 的内容以检查某个元素是否包含在该 map 中。
例如:
target := []int{30, 30}
for _, v := range myMap {
for _, sub := range v {
if len(sub) == len(target) && sub[0] == target[0] && sub[1] == target[1] {
fmt.Println("yeah")
}
}
}
将 myMap
设置为 aa
时,您将不会得到任何输出,将 myMap
设置为 bb
时,您将得到打印“Yeah”。
如果最里面的 slice 变长,您也应该将检查步骤作为一个循环来执行,而不是像那样硬编码。
关于dictionary - 如何找出 'map[string][][]int' 是否有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641914/