1 回答

TA貢獻1818條經驗 獲得超3個贊
問題中的代碼沒有錯。下面介紹如何使用反射 API 來實現目標:
導出字段以使字段可通過反射 API 進行設置。
type Employee struct {
FirstName string
LastName string
Role string
}
為員工創造反映價值。和 惡作劇是獲取可設置值所必需的。&Elem()
var e Employee
v := reflect.ValueOf(&e).Elem()
對于每個字段,設置字符串:
for i := 0; i < v.NumField(); i++ {
v.Field(i).SetString(values[i])
}
在 Go 游樂場上運行一個示例。
如果需要將代碼放在多個位置,請將代碼放在函數中:
// setStrings sets the fields of the struct pointed
// to by ptr to the specified values.
func setStrings(ptr interface{}, values []string) {
v := reflect.ValueOf(ptr).Elem()
for i := 0; i < v.NumField(); i++ {
v.Field(i).SetString(values[i])
}
}
這樣稱呼它:
values := []string{"Monica", "Smith", "Manager"}
var e Employee
setStrings(&e, values)
fmt.Printf("%+v\n", e) // prints {FirstName:Monica LastName:Smith Role:Manager}
在操場上運行一個示例。
- 1 回答
- 0 關注
- 89 瀏覽
添加回答
舉報