当前位置: 首页 > 面试题库 >

包的类型不能用作供应商的包的类型

阳航
2023-03-14
问题内容

我正在尝试使用此Golang Yelp API软件包。在某些结构中,它使用guregu的null包中定义的类型。

我想声明一个在Yelp
API包中定义的结构,其中的某些字段null.Float作为值使用(即,该结构,我正在尝试使用)。因此,在我的程序中,我同时导入了Yelp
API包和guregu的null包,并尝试使用ip.Lat和ip.Lat为float64s声明该结构。(null.FloatFrom定义):

 33         locationOptions := yelp.LocationOptions{
 34                 ip.Zip,
 35                 &yelp.CoordinateOptions{
 36                         Latitude: null.FloatFrom(ip.Lat),
 37                         Longitude: null.FloatFrom(ip.Lon),
 38                 },
 39         }

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

./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告诉我use of vendored package not allowed

有想法该怎么解决这个吗?


问题答案:

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

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

1)完全没有供应商-如果依赖项不需要是特定版本,则可以使用。

2)供应商,但不要将供应商库公开。在库中创建一些包装函数,以便人们可以间接创建类型。

有关更多想法/原因,请参阅有关在reddit上出售商品的讨论。



 类似资料:
  • 上下文:我们正在开发一个带有React和TypeScript的UI组件库,并将React table用于我们的表组件。该库作为npm包发布,并用于我们的其他项目。 我已在名为“反应表配置”的文件中配置了类型,如“类型/反应表”的文档中所述。d、 ts。此外,我还创建了一个新类型CustomColumn。它基于

  • 我已经编写了在android studio上显示可扩展列表视图的代码。以下是ExplandableListView的代码: 这是执行操作的方法: 它在函数定义中的“groupPosition”处显示警告: 当鼠标悬停在上面时,会显示

  • 问题内容: 抱歉,标题似乎令人困惑,但请按示例进行操作。 假设我有一些带有通用类型参数的Java类: 我可以创建一个类型为存储对象的变量,并将通用参数设置为。Java还允许我将该变量分配给另一个变量,但将通用参数设置为通配符类型: 但是,在使用具有泛型参数的类时,如果将该参数的类型设置为泛型,则无法将该类的对象分配给相同类型/泛型的类型,后者(内部/嵌套)参数是通配符类型: 具体的编译错误是: 凭

  • 我认为以下代码可以工作: 但是我得到了一个编译器错误(见这里):

  • 问题内容: 我正在创建一个程序,该程序生成0到9之间的100个随机整数,并显示每个数字的计数。我使用的是十个整数数组 counts 来存储0、1,…,9s的数量。) 编译程序时出现错误: RandomNumbers.java:9:错误:类RandomNumbers中的方法generateNumbers无法应用于给定类型; generateNumbers(); 必需:int [] found:gen

  • 我正在创建一个程序,该程序生成 0 到 9 之间的 100 个随机整数,并显示每个数字的计数。我使用一个由十个整数,计数组成的数组来存储0,1,...,9s的数量。 当我编译程序时,我得到错误: RandomNumbers.java:9:错误:类RandomNumbers中的方法generateNumbers不能应用于给定的类型;< br > generate numbers(); 必需:int[