问题标签 [go-reflect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
26265 浏览

go - 反射 - 方法调用恐慌与“在结构值上调用 reflect.Value.Elem”

这是一个代码片段 -

GetClient("svc1") 工作正常。

但是,当我调用 Invoke("svc1", "endpoint1", someArg) 时,它会惊慌失措地说 -

reflect.ValueOf(client).MethodByName(endpoint).Call(inputs) 恐慌说 Call on a zero value。

0 投票
2 回答
157 浏览

go - 用它的变量制作一个结构的切片

在我的 func 中,我有一个 Product 结构变量,但我无法访问 Product 结构,我想从它的变量中制作一个 Product 切片,例如:

我怎样才能做到这一点?

更新:我想实际实现什么?

我有一些结构想在 gorm 的适配器中使用。

例如,在我的适配器中,我有一个 FindAll 方法,它需要我的一个结构的切片。

我所有的结构都在一个名为 Domains 的包中,我不想从 use(call) FindAll 函数中发送所需的变量。

现在我将我的所有结构注册到一个 Map 并使用结构名称在适配器中获取它们,但结果是该结构的变量而不是该结构的类型,所以我不能从中创建另一个变量或制作一个切片。

0 投票
2 回答
850 浏览

pointers - 在golang中具有指向0值的深度复制结构

我有一个结构golang如下

prop当指针指向零值时,我想对结构对象进行深度复制。真正的结构中有更多的字段,我想要整个结构 obj 的深度复制。我尝试使用gob编码解码方式,但由于此处提到的设计结果,它将指针转换为 0 到零指针。我也尝试使用reflect.Copy,但它因错误而恐慌panic: reflect: call of reflect.Copy on struct Value。有没有更好的方法来深度复制这样的结构对象?

编辑:我尝试使用json编码/解码,它有点工作。但我不知道它的缺点。

对此解决方案有何评论?

0 投票
1 回答
2373 浏览

go - 通过导入器获取有关包的所有信息并反映?

我偶然发现了这个关于如何获取包中所有类型的问题的答案:

https://stackoverflow.com/a/32142080/470339

效果很好。但是,我想采取的下一步是遍历这些类型中的每一个以获得例如NumMethod(). 我没有看到一个立即明显的方法来做到这一点 - 任何人都可以阐明,还是我不得不求助于弄乱 AST?

0 投票
1 回答
632 浏览

go - 将值转换为结构

我有一个结构如下

我得到了这个结构,我需要提取路径对象,但我不断收到编译错误

这是我的转换代码

我在这一行 p := valueField.Elem().(path.Path) 上得到一个编译错误说

任何线索我可以如何克服错误并让它转换?

0 投票
0 回答
594 浏览

go - Go 中的编译时反射

我正在清点我的 Go 应用程序中的所有日志语句。由于日志语句将只包含变量名,所以简单的 grep 是没有用的。我想识别每个日志语句中的变量“类型”,如果它是一个结构,那么该结构中的字段名称。我想写一个脚本来做到这一点。

是否可以在 Go 中使用反射或任何其他方式提取此类信息?

0 投票
1 回答
2920 浏览

go - reflect: 在 ptr Value 上调用 reflect.Value.Field

我试图将 map[string]interface{} 映射到结构。我的结构包含指针类型:

当我尝试遍历 *B 时,我得到了:

输出中的 val 如下:

代码:

我想知道,如何遍历参考值?(迭代在 A 上工作正常)

0 投票
2 回答
1089 浏览

go - 如何检查go文件中是否存在函数

golang 中是否有等价物来检查 package/go 文件中是否存在一个函数,就像在 python 中完成的那样。

0 投票
1 回答
2390 浏览

go - 如何在 Go 中获取包含数据结构的结构的大小?

我目前正在尝试在 Go 中获取复杂结构的大小。

我已经阅读了使用reflectand的解决方案unsafe,但这些都对包含数组或映射(或指向底层数据结构的指针的任何其他字段)的结构没有帮助。

例子:

items如果其中包含一些值,我将如何找出上面的正确字节大小?

0 投票
0 回答
52 浏览

go - 使用存储结构字段名称和类型的映射来恢复 Go 结构

我的问题的游乐场:https: //play.golang.org/p/rVwEaxpkJGL

我有类似的结构

我将存储字段名称并在 map[string]interface{} 中输入,结果如下

我的问题是如何在不知道这个结构的情况下使用这个映射来取回 SimpleBbInput。

谢谢