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

Fork Me On Github
zodream DEBUG Q&A Go 2020-04

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

出现场景

在使用 reflect 报错

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

u := &User{}

Dump(u)

解决方案

修改成

Dump(&u)

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

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

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

Click here to view
0 976 0