本文共 629 字,大约阅读时间需要 2 分钟。
通过封装IsZeroOfUnderlyingType方法判断,代码如下
package mainimport ( "fmt" "reflect")type Person struct { Name string Age int}func IsZeroOfUnderlyingType(x interface{}) bool { return reflect.DeepEqual(x, reflect.Zero(reflect.TypeOf(x)).Interface())}func main() { var person Person //定义一个零值 fmt.Println(IsZeroOfUnderlyingType(person)) //零值结构体,输出true person.Name = "chenqiognhe" //结构体属性Name赋值 fmt.Println(IsZeroOfUnderlyingType(person)) //输出false fmt.Println(IsZeroOfUnderlyingType(person.Age)) //Age仍是零值,输出true person.Age = 18 //Age赋值 fmt.Println(IsZeroOfUnderlyingType(person.Age)) //输出false}
转载地址:http://uwlkz.baihongyu.com/