structの比較はどのようにするのが良いのかわからなかったので色々実験してみた
結論
保持するパラメータで比較: *object1 == *object2
hashで比較: 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)
}