我有一个包含 10 辆车的结构体,例如:
type struct car {
engine
window
wheel
}
Run Code Online (Sandbox Code Playgroud)
所以切片 cars 包含 10 个汽车结构。
我想知道是否存在一个函数,例如:
var engines string[] = cars.Getfield("engine") // engines will contain 10 engines names
Run Code Online (Sandbox Code Playgroud)
没有为此的库函数。
您可以使用反射包手动实现
例子:
type Cars []Car
func (cars Cars) getFieldString(field string) []string {
var data []string
for _, car := range cars {
r := reflect.ValueOf(car)
f := reflect.Indirect(r).FieldByName(field)
data = append(data, f.String())
}
return data
}
Run Code Online (Sandbox Code Playgroud)
此处Playground 中的代码