![](/img/trans.png)
[英]Mongo Go Driver is getting interface conversion error when SetSort used
[英]Go - interface conversion [recovered] - error
测试日志显示以下错误
row 0 - got data of type graph.Node but wanted graph.Node
--- FAIL: TestAlls (0.84s)
panic: interface conversion: interface {} is graph.Node, not graph.Node [recovered]
panic: interface conversion: interface {} is graph.Node, not graph.Node
从以下代码
nnn = graph.Node{}
nnn, ok = row[0].(graph.Node)
if !ok {
log.Printf("row 0 - got data of type %T but wanted graph.Node", nnn)
}
neo4jNode := row[0].(graph.Node)
我正在使用滑行安装,清洁,构建,测试。
是否可能有两个具有相同名称的不同类型? (graph.Node)
是。 如果产生该对象的代码(无论生成的是什么rows
)均引用同一库的另一个副本 ,则类型将不匹配-例如,如果您引用的库foo
(带有graph
供应商)将引用其供应商的版本,当您引用自己的版本时。 也可以有两个完全不同的包(不同的导入路径),它们都命名为graph
但我假设您已经排除了这一点。
在这种情况下,应该清除哪些文件夹?
不幸的是,它并不是那么简单-您需要仔细查看依赖项。 如果要将项目导入为库,并且供应了其自己的依赖项,那么您将会遇到麻烦。 这就是为什么在库中对供应商的依赖关系是不好的做法的原因(依赖关系应仅针对二进制文件进行供应)。
[恢复]是什么意思?
这意味着panic
已经恢复 。 如果测试导致恐慌,则由测试库完成此操作以返回准确的测试结果。
问题的根源是存储库中的多个glide.yaml(&vendor /)。 解决方案是仅具有根glide.yaml(&vendor /)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.