在下面的代码中,a1 和 a2 是相同的。它们具有相同的字段但具有不同的顺序(书 A 和书 B 的顺序不同)。当我使用 DeepEqual() 方法进行比较时,结果表明它们不相等。如何比较它们并得到它们相等的结果?
package main
import (
"fmt"
"reflect"
)
type Author struct {
name string
Books []*Book
}
type Book struct {
id int
name string
}
func main() {
a1 := Author{
name: "Author Name",
Books: []*Book {
{
id: 1,
name: "Book A",
},
{
id: 2,
name: "Book B",
},
},
}
a2 := Author{
name: "Author Name",
Books: []*Book {
{
id: 2,
name: "Book B",
},
{
id: 1,
name: "Book A",
},
},
}
fmt.Println("Is a1 equal to a2: ", reflect.DeepEqual(a1, a2))
}
结果:
Is a1 equal to a2: false