有没有办法解析或内省从其名称字符串标识的变量?例如,如果我有一个与strVal := "s"变量名称相对应的字符串值(例如var s string在同一函数的作用域中),我可以动态查找该s变量的值吗?我知道如果这些是结构体的字段,我可以使用反射,但对于我的用例,我正在处理不属于结构体或映射的局部范围变量。
3 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
看来您是从结构中提取此信息的。
package main
import (
"fmt"
"reflect"
)
type Article struct {
Id int
Title string
Price float32
Authors []string
}
func main() {
article := Article{}
e := reflect.ValueOf(&article).Elem()
for i := 0; i < e.NumField(); i++ {
name := e.Type().Field(i).Name
varType := e.Type().Field(i).Type
value := e.Field(i).Interface()
fmt.Printf("%v %v %v\n", name, varType, value)
}
}
例子:
https://play.golang.org/p/vWkRzpvWKYn
- 3 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消