如何从refect.Value获取struct字段

时间:2014-12-08 16:35:53

标签: reflection go

鉴于

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可以是RegisterCommandLoginCommandLogoutCommand等.Z是'输出文档' - API命令返回的JSON文档 - 我想以声明方式指定并在命令运行后写入网络。

1 个答案:

答案 0 :(得分:1)

知道了!感谢您同意指针' : - )

    z := v.Elem().FieldByName("Z").Interface()