我正在比较两个切片,都是 type []int
。一种是以 json 的形式进入 API 并被解析为 go struct。在结构中,它被初始化为 empty []int{}
。第二个保存在数据库(MongoDb)中并被提取并映射到相同的结构类型。
在某些情况下,这两个切片是完全空白的。但是比较又回来了false
。
reflect.DeepEqual(oldSettings.S1, newSettings.S1)
我还使用 . 检查了两个字段类型reflect.TypeOf(newSettings.S1)
。两者都在重新调整[]int
。
请考虑这个操场链接的结构示例。
https://play.golang.org/p/1JTUCPImxwq
type OldSettings struct {
S1 []int
}
type NewSettings struct {
S1 []int
}
func main() {
oldSettings := OldSettings{}
newSettings := NewSettings{}
if reflect.DeepEqual(oldSettings.S1, newSettings.S1) == false {
fmt.Println("not equal")
} else {
fmt.Println("equal")
}
}
谢谢!