2

我试图理解 Go 中包命名约定背后的想法。大多数软件包的安装和导入方式如下:

import "github.com/howeyc/fsnotify"

我认为包名称应该是唯一的,但我不明白使用网站的意义github.com。为什么不直接使用author/package?喜欢:

import "howeyc/fsnotify"

这不太可能发生冲突。还是其他一些“较短”的策略?是因为它“只适用”go get吗?还是有其他原因?

4

2 回答 2

8

howeyc/fsnotify如果你愿意,你可以使用。使用时github.com/howeyc/fsnotify,可以理解该软件包托管在 Github 上。其他存储库也可以工作。

原因是它使查找和安装依赖项变得更容易go get。否则,您必须手动满足依赖关系。由于分叉 repos 在开源世界中非常普遍,您可能有来自同一作者的修改版本。因此,它有助于区分您的项目所依赖的内容。

于 2013-08-05T21:37:57.237 回答
1

下载并安装软件包和依赖项

用法:

go get [-d] [-fix] [-u] [build flags] [packages]

下载并安装由导入路径命名的包及其依赖项。

在签出或更新包时,get 会查找与本地安装的 Go 版本匹配的分支或标签。最重要的规则是,如果本地安装运行版本“go1”,get 搜索名为“go1”的分支或标签。如果不存在这样的版本,它将检索包的最新版本。

有关指定包的更多信息,请参阅“ go help packages”。

有关“go get”如何查找要下载的源代码的更多信息,请参阅“ go help remote”。

导入路径支持该go get命令。表示远程存储库的路径以代码的路径开头。运行go help remote命令以获取详细信息。

于 2013-08-05T21:47:16.470 回答