为了账号安全,请及时绑定邮箱和手机立即绑定

在库中使用外部依赖

在库中使用外部依赖

Go
慕仙森 2021-11-01 14:13:31
我在Golang中使用wgo进行依赖管理(虽然我认为 wgo 与此关系不大),wgo 的文件夹结构是这样的project/    .gocfg/        gopaths        vendor.json    vendor/        src/            github.com_or_whatever/我有一个自己编写的库,它nsq-go在导出的方法之一中使用了一种类型:func AddNsqSubscription(    topic, channel string,     handler nsq.Handler,     config *nsq.Config) error { }图书馆被调用messi,我nsq-go像这样导入"messi/vendor/src/github.com/bitly/go-nsq"当我尝试在另一个项目中使用这个库时,问题就出现了。例如,在一个名为scribe我的项目中,有以下代码(注意导入):import (    "scribe/vendor/src/github.com/bitly/go-nsq"    "scribe/vendor/src/messi")//...nsqHandler := nsq.HandlerFunc(func(message *nsq.Message) error {    msgHandler(MessiMessage{message})    return nil})return messi.AddNsqSubscription(destination, subdestination, nsqHandler, nsq.NewConfig())当我go build返回以下错误时:不能使用nsqHandler(类型“ scribe /vendor/src/github.com/bitly/go-nsq”.HandlerFunc)作为类型“ messi /vendor/src/github.com/bitly/go-nsq”.Handler 在参数中给 messi .AddNsqSubscription: "scribe/vendor/src/github.com/bitly/go-nsq".HandlerFunc 没有实现 "messi/vendor/src/github.com/bitly/go-nsq".Handler(HandleMessage 方法类型错误)有HandleMessage( " scribe /vendor/src/github.com/bitly/go-nsq".Message) 错误想要HandleMessage( " messi /vendor/src/github.com/bitly/go-nsq".Message) 错误为什么?我真的不知道发生了什么。go-nsq导入的代码完全一样,但是golang要这个代码来自同一个文件夹?我究竟做错了什么?
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

Go 中的包由完整的导入路径标识,而不是名称。

例如,在标准库中有两个不同的包,它们具有相同的名称template但导入路径不同:text/templatehtml/template.

您应该确保go-nsq使用相同的路径导入包。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信