go的struct能不能作为map的key

go的struct能不能作为map的key

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