鉴于
type Runnable interface {
Run()
}
type T struct {
Z struct {
A int
}
}
func (t T) Run() {
t.Z.A = 1
}
func main() {
t := reflect.TypeOf( T{} )
var v reflect.Value
v = reflect.New(t).Elem()
runnable := v.Interface().(Runnable)
runnable.Run()
最后是否有办法按Run()
方法设定的方式检索Z及其字段值?
我正在实施API命令模式,因此T
可以是RegisterCommand
,LoginCommand
,LogoutCommand
等.Z是'输出文档' - API命令返回的JSON文档 - 我想以声明方式指定并在命令运行后写入网络。
答案 0 :(得分:1)
知道了!感谢您同意指针' : - )
z := v.Elem().FieldByName("Z").Interface()