【发布时间】:2020-11-02 10:04:25
【问题描述】:
我正在比较两个切片,都是[]int 类型。一种是以 json 的形式进入 API 并被解析为 go struct。在结构中,它被初始化为空[]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")
}
}
谢谢!
【问题讨论】: