Menu
CoddyTech

比较映射

本课属于 Coddy GO 学习旅程的“逻辑与流程”单元。第 29 课,共 68 课。

与 Go 中的许多其他数据类型不同,映射有一个独特的限制:不能使用 == 运算符直接比较映射。唯一的例外是将映射与 nil 比较。

这意味着,像这样的代码无法编译:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// 这样会导致编译错误!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

不过,你可以放心地将映射与 nil 进行比较:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

如果你需要检查两个映射是否包含相同的键值对,就必须编写一个自定义函数,遍历两个映射并逐个比较其中的元素。这种方法让你可以完全控制比较逻辑,根据具体用途准确地定义“相等”的含义。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Go 在线编译器