问题标签 [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.
go - 反射 - 方法调用恐慌与“在结构值上调用 reflect.Value.Elem”
这是一个代码片段 -
GetClient("svc1") 工作正常。
但是,当我调用 Invoke("svc1", "endpoint1", someArg) 时,它会惊慌失措地说 -
reflect.ValueOf(client).MethodByName(endpoint).Call(inputs) 恐慌说 Call on a zero value。
go - 用它的变量制作一个结构的切片
在我的 func 中,我有一个 Product 结构变量,但我无法访问 Product 结构,我想从它的变量中制作一个 Product 切片,例如:
我怎样才能做到这一点?
更新:我想实际实现什么?
我有一些结构想在 gorm 的适配器中使用。
例如,在我的适配器中,我有一个 FindAll 方法,它需要我的一个结构的切片。
我所有的结构都在一个名为 Domains 的包中,我不想从 use(call) FindAll 函数中发送所需的变量。
现在我将我的所有结构注册到一个 Map 并使用结构名称在适配器中获取它们,但结果是该结构的变量而不是该结构的类型,所以我不能从中创建另一个变量或制作一个切片。
pointers - 在golang中具有指向0值的深度复制结构
我有一个结构golang
如下
prop
当指针指向零值时,我想对结构对象进行深度复制。真正的结构中有更多的字段,我想要整个结构 obj 的深度复制。我尝试使用gob
编码解码方式,但由于此处提到的设计结果,它将指针转换为 0 到零指针。我也尝试使用reflect.Copy
,但它因错误而恐慌panic: reflect: call of reflect.Copy on struct Value
。有没有更好的方法来深度复制这样的结构对象?
编辑:我尝试使用json
编码/解码,它有点工作。但我不知道它的缺点。
对此解决方案有何评论?
go - 通过导入器获取有关包的所有信息并反映?
我偶然发现了这个关于如何获取包中所有类型的问题的答案:
https://stackoverflow.com/a/32142080/470339
效果很好。但是,我想采取的下一步是遍历这些类型中的每一个以获得例如NumMethod()
. 我没有看到一个立即明显的方法来做到这一点 - 任何人都可以阐明,还是我不得不求助于弄乱 AST?
go - 将值转换为结构
我有一个结构如下
我得到了这个结构,我需要提取路径对象,但我不断收到编译错误
这是我的转换代码
我在这一行 p := valueField.Elem().(path.Path) 上得到一个编译错误说
任何线索我可以如何克服错误并让它转换?
go - Go 中的编译时反射
我正在清点我的 Go 应用程序中的所有日志语句。由于日志语句将只包含变量名,所以简单的 grep 是没有用的。我想识别每个日志语句中的变量“类型”,如果它是一个结构,那么该结构中的字段名称。我想写一个脚本来做到这一点。
是否可以在 Go 中使用反射或任何其他方式提取此类信息?
go - reflect: 在 ptr Value 上调用 reflect.Value.Field
我试图将 map[string]interface{} 映射到结构。我的结构包含指针类型:
当我尝试遍历 *B 时,我得到了:
输出中的 val 如下:
代码:
我想知道,如何遍历参考值?(迭代在 A 上工作正常)
go - 如何检查go文件中是否存在函数
golang 中是否有等价物来检查 package/go 文件中是否存在一个函数,就像在 python 中完成的那样。
go - 如何在 Go 中获取包含数据结构的结构的大小?
我目前正在尝试在 Go 中获取复杂结构的大小。
我已经阅读了使用reflect
and的解决方案unsafe
,但这些都对包含数组或映射(或指向底层数据结构的指针的任何其他字段)的结构没有帮助。
例子:
items
如果其中包含一些值,我将如何找出上面的正确字节大小?
go - 使用存储结构字段名称和类型的映射来恢复 Go 结构
我的问题的游乐场:https: //play.golang.org/p/rVwEaxpkJGL
我有类似的结构
我将存储字段名称并在 map[string]interface{} 中输入,结果如下
我的问题是如何在不知道这个结构的情况下使用这个映射来取回 SimpleBbInput。
谢谢