dictionary - 如何找出 'map[string][][]int' 是否有值

标签 dictionary go

给定这段代码:

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/

相关文章:

python - 使用字典的字典创建命名空间

python - 如何在 Python 3.4.3 中打印排序后的字典

C# 字典 - 一个键,多个值

go - Cloudfoundry 密码 - 代码漏洞

CGO : use typedef struct in preamble

go - 如何在 Golang 中生成唯一的随机字母数字标记?

java - 如何在 Java 中将 HashMap 转换为 List?

java - 在Java中访问具有一个元素的Map的键值对

在golang中排序int slice

go - 使用 go 模块将 retool 替换为 tools.go 用于多开发人员和 CI 环境