package structx import "reflect" // IsZeroValue 检查字段是否为零值 func IsZeroValue(v reflect.Value) bool { switch v.Kind() { case reflect.String: return v.String() == "" case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return v.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: return v.Uint() == 0 case reflect.Bool: return !v.Bool() case reflect.Float32, reflect.Float64: return v.Float() == 0 case reflect.Ptr, reflect.Map, reflect.Array, reflect.Chan, reflect.Slice: return v.IsNil() default: return reflect.DeepEqual(v.Interface(), reflect.Zero(v.Type()).Interface()) } }