【发布时间】:2020-05-22 21:51:51
【问题描述】:
这是一篇博文的引述:
强制虚 URL go get 支持通过 URL 获取包
与包的 repo 的 URL 不同。这些 URL 被称为 虚 URL,并要求您提供带有特定元标记的页面 Go 工具识别。您可以使用自定义域提供包 和使用虚 URL 的路径。
例如,
$ go get cloud.google.com/go/datastore查看源代码 https://code.googlesource.com/gocloud在幕后,把它放进去 $GOPATH/src/cloud.google.com/go/datastore 下的工作区。
鉴于 code.googlesource.com/gocloud 已在提供此软件包, 是否可以从该 URL 获取包?答案 否,如果您强制使用虚 URL。
为此,请在包中添加导入语句。 go 工具将 拒绝从任何其他路径导入此包,并将显示 对用户友好的错误。如果您不强制执行您的虚 URL, 由于您的包裹将有两份无法一起使用 到不同的命名空间。
package datastore // import "cloud.google.com/go/datastore"
谁能解释一下最后一行是什么意思?
如果您不强制使用您的个性化网址, 由于您的包裹将有两份无法一起使用 到不同的命名空间。
还是举例说明?
【问题讨论】:
-
导入路径不同的类型是不同的类型,不管它们是否有相同的源代码。这对于 go 模块来说不再是一个真正的问题,因为模块名称定义了导入路径。
标签: go