golang 利用反射获取结构体的key
时间: 2023-12-12 17:04:07 浏览: 154
Golang结构体和map
可以使用反射包中的Type和Value方法获取结构体的信息,例如:
```go
type Person struct {
Name string
Age int
}
func main() {
person := Person{"John", 30}
t := reflect.TypeOf(person)
v := reflect.ValueOf(person)
for i := 0; i < t.NumField(); i++ {
field := t.Field(i)
value := v.Field(i)
fmt.Printf("%s: %v\n", field.Name, value)
}
}
```
在上述代码中,我们首先定义了一个Person结构体,然后使用反射包中的TypeOf和ValueOf方法获取结构体的类型和值。接着,我们通过循环遍历结构体的字段,使用Field方法获取每个字段的信息,包括字段名(Name)和字段值(Value)。
输出结果为:
```
Name: John
Age: 30
```
这样就可以利用反射获取结构体的key了。
阅读全文