Golang 结构体的比较
因为不知道如何比较结构体,所以我尝试了各种实验。
结论 (jié
保持参数进行比较:*object1 == *object2
通过哈希进行比较:object1 == object2
似乎是一个很好的选择。
实验代码
package main
type parent struct {
name string
param int
child
}
type child struct {
name string
param int
}
func main() {
childName := "foo"
childParam := 1
child1 := child{name: childName, param: childParam}
child2 := &child{name: childName, param: childParam}
println("###################")
println("&child1", &child1)
println("child2", child2)
println("&*child2", &*child2)
println("&child2", &child2)
println("child equals result 1:", child1 == *child2)
println("child equals result 2:", child1 == *&*child2)
println("child equals result 3:", *&child1 == *child2)
println("child equals result 4:", &child1 == *&child2)
parentName := "tests"
parentParam := 3
parent1 := &parent{name: parentName, param: parentParam, child: child1}
parent2 := &parent{name: parentName, param: parentParam, child: child1}
println("###################")
println(parent1)
println(parent2)
println("result:", *parent1 == *parent2)
}