Go语言中如何忽略嵌套切片元素顺序语义比较结构体
如何断言Go结构体语义相等(忽略所有层级切片元素顺序)
结构体定义
type A struct { Id int Bs []B Sub C } type B struct { Id int Str string } type C struct { Id int Ds []D } type D struct { Id int Num int }
测试需求
需要判断以下两个A类型实例是否语义相等,要求忽略所有层级中切片元素的顺序,最终断言结果应返回true。
var want = &A{ Id: 1, Bs: []B{{Id: 10, Str: "b10"}, {Id: 20, Str: "b20"}}, Sub: C{ Id: 100, Ds: []D{{Id: 101, Num: 1001}, {Id: 102, Num: 1002}}, }, } var got = &A{ Id: 1, Bs: []B{{Id: 20, Str: "b20"}, {Id: 10, Str: "b10"}}, Sub: C{ Id: 100, Ds: []D{{Id: 102, Num: 1002}, {Id: 101, Num: 1001}}, }, }
内容的提问来源于stack exchange,提问作者Alcastic
相关产品推荐
相关产品推荐

