在go语言中如何通过名称获得结构字段和值代码示例
在go语言项目中,有些时候我们需要根据字段的名称来找出某个结构中的字段的值。
下面看看使用使用reflect包从字段名中找出相关值。
示例代码:
package main
import (
"fmt"
"reflect"
)
type Employee struct {
Name string
Age int
Job string
}
func getFieldString(e *Employee, field string) string {
r := reflect.ValueOf(e)
f := reflect.Indirect(r).FieldByName(field)
return f.String()
}
func getFieldInteger(e *Employee, field string) int {
r := reflect.ValueOf(e)
f := reflect.Indirect(r).FieldByName(field)
return int(f.Int())
}
func main() {
e := Employee{"Zongscan", 36, "CEO"}
fmt.Println(getFieldString(&e, "Name"))
fmt.Println(getFieldInteger(&e, "Age"))
fmt.Println(getFieldString(&e, "Job"))
}
输出:
Zongscan
36
CEO
相关文章