golang array struct 获取某个key所有value to array
时间: 2024-01-11 22:03:22 浏览: 131
Golang学习笔记(四):array、slice、map
假设有如下定义的结构体:
```go
type Person struct {
Name string
Age int
Email string
}
```
如果要获取所有 `Name` 字段的值,可以使用循环遍历数组并逐个获取:
```go
people := []Person{
{Name: "Alice", Age: 30, Email: "alice@example.com"},
{Name: "Bob", Age: 40, Email: "bob@example.com"},
{Name: "Charlie", Age: 50, Email: "charlie@example.com"},
}
names := []string{}
for _, p := range people {
names = append(names, p.Name)
}
fmt.Println(names) // 输出 ["Alice", "Bob", "Charlie"]
```
也可以使用反射来实现:
```go
v := reflect.ValueOf(people)
names := []string{}
for i := 0; i < v.Len(); i++ {
name := v.Index(i).FieldByName("Name").String()
names = append(names, name)
}
fmt.Println(names) // 输出 ["Alice", "Bob", "Charlie"]
```
不过需要注意的是,反射的性能较差,应尽量避免在高性能场景下使用。
阅读全文