我想通过反射获取字段名称的名称。我将字符串作为指针传递,然后我想在函数中检索变量名。type FooBar struct { foo *string}func bar(s *string) { var name string // TODO: Get name of the field that s is pointing to! fmt.Println("Expected string is foo: " + name)}func main() { f := Foo{"bar"} bar(f.s)}我试着用val := reflect.ValueOf(s)然后我无法获取变量名。我应该提到我的结构中有多个字段,我事先不知道哪个字段有问题。任何帮助表示赞赏。谢谢
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
你不可以做这个。
当你写的时候,f.s
你所拥有的只是一个指向字符串的指针。某些结构中的某些字段恰好将 this 作为值的信息完全丢失/不可用。
我不会在这里推荐 package unsafe:你必须重新设计。
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消