如何判断一个interface{}所持有的值是否为其类型的零值?

如何判断一个interface{}所持有的值是否为其类型的零值?

共 1 个回复


aaa

        switch val := fv.Interface(); f.Type.Kind(){
            case reflect.String:
                if !reflect.DeepEqual(val,""){
                    continue
                }
            case reflect.Struct:
                if ty.String() == "time.Time" {
                    if reflect.DeepEqual(val,time.Time{}){
                        continue
                    }
                }
            case  reflect.Int, reflect.Int64, reflect.Int32, reflect.Int8, reflect.Int16,reflect.Uint,reflect.Uint8, 
                  reflect.Uint16, reflect.Uint32, reflect.Uint64,reflect.Float32, reflect.Float64:
                if !reflect.DeepEqual(val,0){
                    continue
                }
        }

我执行一条SQL命令, 经过多少次switch 和 for 大循环; 不断反射,…………………….
我都开始怀疑人生了…………..
我都开始怀疑人生了…………..
我都开始怀疑人生了…………..
我都开始怀疑人生了…………..
我都开始怀疑人生了…………..

# 0