go语言判断某数据结构是否为空值

func isZero(v interface{}) bool {
return reflect.DeepEqual(v, reflect.Zero(reflect.TypeOf(v)).Interface())
}

reflect.DeepEqual() 是 reflect 包中的一个函数,用于检查接口类型的值是否深度相等。
在示例中,使用该函数来比较给定的结构体类型 v 是否等于其类型的零值。

reflect.Zero() 函数是返回给定类型的零值。
这里我调用 reflect.TypeOf() 函数以获取给定变量的类型,并将其作为参数传递给 reflect.Zero() 函数。

最后,通过将类型的零值转换为 interface{} 类型并传递给 reflect.DeepEqual() 函数进行比较,可以检查给定结构体类型 v 是否为空值。如果 v 的所有字段都为零值,则他们与类型的零值相等,因此返回 true。否则,返回 false。

猜你喜欢

转载自blog.csdn.net/sywdebug/article/details/132763490