可以使用模板按名称访问struct变量。在Go语言中,可以使用反射来实现这个功能。
首先,需要导入reflect
包,然后使用reflect.ValueOf()
函数获取struct变量的反射值,接着使用FieldByName()
方法根据名称获取struct中的字段,最后使用Interface()
方法将字段的反射值转换为接口类型。
以下是一个示例代码:
package main
import (
"fmt"
"reflect"
)
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "John", Age: 25}
field := reflect.ValueOf(p).FieldByName("Name")
fmt.Println(field.Interface())
}
输出结果为:
John
在这个示例中,我们使用reflect.ValueOf(p)
获取了Person
结构体的反射值,然后使用FieldByName("Name")
获取了Name
字段的反射值,最后使用Interface()
方法将其转换为接口类型并打印输出。
领取专属 10元无门槛券
手把手带您无忧上云