我希望我可以恢复我的结构类型并声明该类型的变量。我试过反射,但我找不到路。 package mainimport ( "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)}
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
reflect.New与您的类型一起使用,这是使用反射设置Name新M结构实例的示例:
package main
import (
"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)
}
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消