Go Relflect 声明类型结构

我希望我可以恢复我的结构类型并声明该类型的变量。


我试过反射,但我找不到路。


  package main


import (

    "fmt"

    "reflect"

)


type M struct {

    Name string

}


func main() {

    type S struct {

        *M

    }


    s := S{}

    st := reflect.TypeOf(s)

    Field, _ := st.FieldByName("M")

    Type := Field.Type

    test := Type.Elem()

    fmt.Print(test)

}


茅侃侃
浏览 142回答 1
1回答

慕村225694

reflect.New与您的类型一起使用,这是使用反射设置Name新M结构实例的示例:package mainimport (    "fmt"    "reflect")type M struct {    Name string}func main() {    type S struct {        *M    }    s := S{}    mStruct, _ := reflect.TypeOf(s).FieldByName("M")    mInstance := reflect.New(mStruct.Type.Elem())    nameField := mInstance.Elem().FieldByName("Name")    nameField.SetString("test")    fmt.Print(mInstance)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go