go的struct能不能比较

go的struct能不能比较

go 的 struct 能不能比较

结论

不同类型的 struct 不可比较:A1 != B1

相同类型的 struct 的实例值可比较: A1 = A2

相同类型的指针类型的实例值可比较 &A1 = &A2

验证

func DeepEquEqual() {
	var user1 = User{
		Id:   1,
		Name: "xj",
	}
	var user2 = User{
		Id:   1,
		Name: "xj",
	}
	equal := reflect.DeepEqual(user1, user2)
	fmt.Println("user1==user2;", equal)
	var user3 = &User{
		Id:   1,
		Name: "xj",
	}
	var user4 = &User{
		Id:   1,
		Name: "xj",
	}
	equal = reflect.DeepEqual(user3, user4)
	fmt.Println("user3==user4;", equal)
}

user1==user2; true

user3==user4; true