如果我定義了一個(gè)類型type myInt64 int64,我將如何使用反射來(lái)設(shè)置它?恐慌下面的代碼反映.Set:int64類型的值不能分配給main.myInt64類型 http://play.golang.org/p/scsXq4ofk6package mainimport ( "fmt" "reflect")type myInt64 int64type MyStruct struct { Name string Age myInt64}func FillStruct(m map[string]interface{}, s interface{}) error { structValue := reflect.ValueOf(s).Elem() for name, value := range m { structFieldValue := structValue.FieldByName(name) val := reflect.ValueOf(value) structFieldValue.Set(val) } return nil}func main() { myData := make(map[string]interface{}) myData["Name"] = "Tony" myData["Age"] = int64(23) result := &MyStruct{} err := FillStruct(myData, result) if err != nil { fmt.Println(err) } fmt.Println(result)}
如何在Go中使用基本類型設(shè)置結(jié)構(gòu)字段
函數(shù)式編程
2021-11-22 18:27:48