因为并非所有类型都具有可比性,例如切片。所以我们不能这样做
var v ArbitraryType
v == reflect.Zero(reflect.TypeOf(v)).Interface()
编辑 - 解决方案reflect.DeepEqual
var v ArbitratyType
zero := reflect.Zero(reflect.TypeOf(v)).Interface()
isZero := reflect.DeepEqual(v, zero)
Go 文档关于reflect.DeepEqual
DeepEqual 测试深度相等。它在可能的情况下使用普通 == 相等,但会扫描数组、切片、映射和结构字段的元素。
智慧大石
偶然的你
当年话下
相关分类