Я хочу назвать поле моей структуры строкой, поэтому я проверил и увидел, что мне нужно использовать пакет отражения. Вот мой код:
package main
import (
"fmt"
"reflect"
)
type cmd struct{
echo func() (string,error)
}
func main() {
cmd:=cmd{
echo : func () (string,error){
return "test", nil
},
}
fmt.Println(reflect.ValueOf(&cmd).MethodByName("echo").Call([]reflect.Value{}))
}
И когда я хочу его построить, он паникует как:
panic: reflect: call of reflect.Value.Call on zero Value
goroutine 1 [running]:
reflect.flag.mustBe(...)
c:/go/src/reflect/value.go:208
reflect.Value.Call(0x0, 0x0, 0x0, 0xc0000c7f50, 0x0, 0x0, 0x0, 0x0, 0xc000086058)
c:/go/src/reflect/value.go:319 +0x174
Я не понимаю []reflect.Value{}
, зачем мне это использовать на линии:
reflect.ValueOf(&cmd).MethodByName("echo").Call([]reflect.Value{})
Надеюсь, кто-то может помочь! : D
Крис