繁体   English   中英

转到-接口转换[已恢复]-错误

[英]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)
  • 在这种情况下,应该清除哪些文件夹?
  • [恢复]是什么意思?

我正在使用滑行安装,清洁,构建,测试。

是否可能有两个具有相同名称的不同类型? (graph.Node)

是。 如果产生该对象的代码(无论生成的是什么rows )均引用同一库另一个副本 ,则类型将不匹配-例如,如果您引用的库foo (带有graph供应商)将引用其供应商的版本,当您引用自己的版本时。 也可以有两个完全不同的包(不同的导入路径),它们都命名为graph但我假设您已经排除了这一点。

在这种情况下,应该清除哪些文件夹?

不幸的是,它并不是那么简单-您需要仔细查看依赖项。 如果要将项目导入为库,并且供应了其自己的依赖项,那么您将会遇到麻烦。 这就是为什么在库中对供应商的依赖关系是不好的做法的原因(依赖关系应针对二进制文件进行供应)。

[恢复]是什么意思?

这意味着panic已经恢复 如果测试导致恐慌,则由测试库完成此操作以返回准确的测试结果。

问题的根源是存储库中的多个glide.yaml(&vendor /)。 解决方案是仅具有根glide.yaml(&vendor /)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM