文章目录
直接将使用 map1 == map2 是错误的,这种写法只能比较 map 是否为 nil。
func main() {
var a1 map[int]string
var a2 map[float64]int
fmt.Println(a1 == a2) //编译错误
var a3 map[rune]int
var a4 map[rune]int
fmt.Println(a3 == a4) //编译错误
}
func main() {
var m map[string]int
var n map[string]int
fmt.Println(m == nil)
fmt.Println(n == nil)
//fmt.Println(m == n)// 不能通过编译
/*输出:
true
true*/
}
因此只能是遍历map 的每个元素,比较元素是否都是深度相等。
map 深度相等的条件:
1、都为 nil
2、非空、长度相等,指向同一个 map 实体对象
3、相应的 key 指向的 value “深度”相等