go取结构体里的key输出key 不要值
时间: 2024-12-22 07:25:33 浏览: 3
Go语言中结构体方法副本传参与指针传参的区别介绍
在Go语言中,如果你想要从结构体里获取键而不显示其对应的值,你可以直接使用`reflect`包提供的`Type.Field()`或`Value.Field()`函数。比如,假设有一个名为`Person`的结构体:
```go
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func getKeys(person Person) []string {
typeOfPerson := reflect.TypeOf(person)
keys := make([]string, 0, len(typeOfPerson.Fields()))
for i := 0; i < typeOfPerson.NumFields(); i++ {
field := typeOfPerson.Field(i)
keys = append(keys, field.Name)
}
return keys
}
```
在这个例子中,`getKeys`函数会返回`Person`结构体的所有字段名(即`Name`和`Age`)。如果你只对JSON标签有特定的要求,可以在循环里添加条件判断,例如只获取`json:" "`前缀的键。
阅读全文