Go 包装';s类型不能用作供应商包';s型

Go 包装';s类型不能用作供应商包';s型,go,struct,Go,Struct,我正试着用这个。在某些结构中,它使用中定义的类型 我想声明一个在YelpAPI包中定义的结构,其中一些字段的值为null.Float。因此,在我的程序中,我导入了Yelp API包和guregu的null包,并尝试声明结构,其中ip.Lat和ip.Lat为float64s.: 但当我运行程序时,它告诉我: ./cli.go:36: cannot use "github.com/guregu/null".FloatFrom(ip.Lat) (type "github.com/guregu/null

我正试着用这个。在某些结构中,它使用中定义的类型

我想声明一个在YelpAPI包中定义的结构,其中一些字段的值为
null.Float
。因此,在我的程序中,我导入了Yelp API包和guregu的null包,并尝试声明结构,其中ip.Lat和ip.Lat为float64s.:

但当我运行程序时,它告诉我:

./cli.go:36: cannot use "github.com/guregu/null".FloatFrom(ip.Lat) (type
"github.com/guregu/null".Float) as type "github.com/JustinBeckwith/go-
yelp/yelp/vendor/github.com/guregu/null".Float in field value
我尝试了两件事:

1) 我没有导入
null
包,这导致Go抱怨
null
未定义。2) 我还尝试直接导入卖方软件包,这导致Go告诉我不允许使用卖方软件包


关于如何解决这个问题有什么想法吗?

这里的解决方案似乎是,我试图使用的库需要重新设计,以防止这种情况发生

更改库的两种可能方法似乎是

1) 完全不是供应商-如果依赖项不需要是特定版本,则此选项有效

2) 卖方,但不得向公众公开卖方图书馆。在库中创建一些包装函数,以便人们可以间接创建类型


我也有同样的问题。作为解决办法,我删除了相关包的供应商文件夹,并将其内容移动到我的$GOPATH文件夹中


答案来源:

刚刚有一个类似的问题。已解决将两个库放入
/vendor
的问题。使用
govendor get xxxx

在使用Godep时遇到类似问题,我通过删除
/vendor
并重新运行
Godep save解决了该问题。/…
-希望能有所帮助

./cli.go:36: cannot use "github.com/guregu/null".FloatFrom(ip.Lat) (type
"github.com/guregu/null".Float) as type "github.com/JustinBeckwith/go-
yelp/yelp/vendor/github.com/guregu/null".Float in field value