如何从reflect.Value获取struct字段

给定的


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文档-我要指定声明,并运行该命令后已写入网络。


慕尼黑的夜晚无繁华
浏览 222回答 1
1回答

30秒到达战场

知道了!感谢 Synful 的“指针”:-)    z := v.Elem().FieldByName("Z").Interface()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go