1 回答

TA貢獻1824條經驗 獲得超8個贊
此代碼只是您嘗試的內容的回顧,并且有效
package main
import (
"fmt"
"reflect"
"strings"
)
type Vehicle struct {
Manufacturer Manufacturer
VehicleNumber string
}
type Manufacturer struct {
ManufacturerName string
}
func exportValueFromField(data interface{}, index string) string {
indexArray := strings.Split(index, ".")
r := reflect.ValueOf(data)
for _, i := range indexArray {
if r.FieldByName(i).Kind() == reflect.Struct {
r = reflect.ValueOf(r.FieldByName(i).Interface())
} else {
r = r.FieldByName(i)
}
}
return fmt.Sprintf("%v", r)
}
func main() {
var vehicle = Vehicle{
Manufacturer: Manufacturer{
ManufacturerName: "hello",
},
}
value := exportValueFromField(vehicle, "Manufacturer.ManufacturerName")
fmt.Println(value)
}
- 1 回答
- 0 關注
- 95 瀏覽
添加回答
舉報