golang相同结构体比较方式比较
golang 相同结构体比较方式比较
使用==
示例:
学生类型结构{
名称字符串
年龄整数
}
类型类结构{
名称字符串
}
func main(){ 0
s1 :=学生{
名称为: 'ysm ',
23岁,
}
s2 :=学生{
名称为: 'ysm ',
23岁,
}
如果s1==s2 {
日志Println('这两个值相同)
} else {
日志Println('这两个值不相同)
}
}
# 输出:这两个值相同
缺点:如果结构体中有指针类型,就不能够进行比较。因为对于指针类型的比较是比较地址,不是比较指针指向的内容
示例:
学生类型结构{
名称字符串
年龄整数
丙类
}
类型类结构{
名称字符串
}
func main(){ 0
s1 :=学生{
名称为: 'ysm ',
23岁,
C:级{
名称: '3班,
},
}
s2 :=学生{
名称为: 'ysm ',
23岁,
C:级{
名称: '3班,
},
}
如果s1==s2 {
日志Println('这两个值相同)
} else {
日志Println('这两个值不相同)
}
}
# 输出:这两个值不相同
使用reflect.DeepEqual
示例:
学生类型结构{
名称字符串
年龄整数
丙类
}
类型类结构{
名称字符串
}
func main(){ 0
s1 :=学生{
名称为: 'ysm ',
23岁,
C:级{
名称: '3班,
},
}
s2 :=学生{
名称为: 'ysm ',
23岁,
C:级{
名称: '3班,
},
}
如果反映出来DeepEqual(s1,S2){ 0
日志Println('这两个值相同)
} else {
日志Println('这两个值不相同)
}
}
# 输出:这两个值相同
原因:使用反思深度平等.是进行值比较
缺点:运行时间慢
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157184.html