В следующем коде 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