我希望我可以恢復(fù)我的結(jié)構(gòu)類型并聲明該類型的變量。我試過(guò)反射,但我找不到路。 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貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
reflect.New與您的類型一起使用,這是使用反射設(shè)置Name新M結(jié)構(gòu)實(shí)例的示例:
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 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)
0/150
提交
取消