有没有办法解决或反省从名称字符串中识别的变量?例如,如果我有一个strVal := "s"与变量名称相对应的字符串值,例如var s string在同一个函数的范围内,我可以动态查找s变量的值吗?我知道如果这些是结构的字段,我可以使用反射,但对于我的用例,我正在处理不属于结构或映射的局部范围变量。
3 回答
慕村225694
TA贡献1880条经验 获得超4个赞
似乎您从结构中提取了这些信息。
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 关注
- 150 浏览
添加回答
举报
0/150
提交
取消