在go语言中如何通过名称获得结构字段和值代码示例

2023-06-01 00:00:00 字段 示例 名称

在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

相关文章