panic: reflect: call of reflect.Value.Interface on zero Value

Fork Me On Github
zodream DEBUG问题集 Go 2020年04月

panic: reflect: call of reflect.Value.Interface on zero Value

出现场景

在使用 reflect 报错

go
          
func Dump(vals ...interface{}) {
    for _, v := range vals {
        val := reflect.ValueOf(v)
        fmt.Printf("[%T]", val.Interface())
    }
}

u := &User{}

Dump(u)
12345678910

解决方案

修改成

go
 
Dump(&u)
1

因为反射看不到未导出的函数

这个错误是没办法通过方法内部解决的,是写代码时的错误,只能修改使用方法的代码。

同类错误 reflect: call of reflect.Value.Call on zero Value

点击查看全文
0 1404 0