如何使用反射获取字符串指针的变量名?

我想通过反射获取字段名称的名称。我将字符串作为指针传递,然后我想在函数中检索变量名。


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)

然后我无法获取变量名。


我应该提到我的结构中有多个字段,我事先不知道哪个字段有问题。


任何帮助表示赞赏。谢谢


猛跑小猪
浏览 146回答 1
1回答

一只萌萌小番薯

你不可以做这个。当你写的时候,f.s你所拥有的只是一个指向字符串的指针。某些结构中的某些字段恰好将 this 作为值的信息完全丢失/不可用。我不会在这里推荐 package unsafe:你必须重新设计。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go