【问题标题】:How to get variable name of string pointer by using reflection?如何使用反射获取字符串指针的变量名?
【发布时间】:2019-07-06 06:51:57
【问题描述】:

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

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)
}

我尝试用 s 获取值

val := reflect.ValueOf(s)

然后我无法获得变量名。

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

感谢任何帮助。谢谢

【问题讨论】:

    标签: pointers go reflection


    【解决方案1】:

    你不能这样做。

    当您编写f.s 时,您所拥有的只是一个指向字符串的指针。某些结构中的某些字段恰好具有 this 作为值的信息完全丢失/不可用。

    我不会在这里推荐不安全的包:你必须重新设计。

    【讨论】:

    • 当然。不知何故,我的印象是我得到了一个指向结构的指针。谢谢
    猜你喜欢
    • 2011-02-03
    • 2017-07-17
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多