获取 go 结构体值的方法有:使用点号操作符(.)使用指针操作符(*)使用反射
如何获取 Go 语言中结构体的值
在 Go 语言中,可以使用以下几种方法获取结构体中的值:
1. 使用点号操作符(.)
最简单直接的方法是使用点号操作符 (.)。例如:
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "John", Age: 30}
name := p.Name
age := p.Age
}
2. 使用指针操作符(*)
如果结构体是用指针传递的,则需要使用指针操作符 (*) 来获取结构体中的值。例如:
type Person struct {
Name string
Age int
}
func main() {
p := &Person{Name: "John", Age: 30}
name := p.Name
age := p.Age
}
3. 使用反射
反射是一种在运行时检查和修改类型和值的技术。可以使用反射来获取结构体中的值。例如:
package main
import (
"fmt"
"reflect"
)
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "John", Age: 30}
typ := reflect.TypeOf(p)
val := reflect.ValueOf(p)
fmt.Println(typ.Field(0).Name) // Name
fmt.Println(val.Field(0).String()) // John
}
以上是获取 Go 语言中结构体值的三种常用方法。根据具体场景,选择最合适的方法。