go 的 struct 能不能作为 map 的 key
结论
不管是值类型还是引用类型的 struct 可以作为 map 的 key
验证
func MapStructKey() {
// 值类型
var m1 = make(map[User]int)
var user1 = User{
Id: 1,
Name: "xj",
}
m1[user1] = 1
fmt.Println("m1[user1]:", m1[user1])
// 引用类型
var m2 = make(map[*User]int)
var user2 = &User{
Id: 2,
Name: "xj2",
}
m2[user2] = 2
fmt.Println("m2[user2]:", m2[user2])
}
m1[user1]:1
m2[user2]:2