我正在尝试理解Go中包命名约定背后的想法。大多数软件包的安装和导入类似于:
import "github.com/howeyc/fsnotify"
我认为软件包名称应该是唯一的,但我没有看到使用网站github.com
的重点。为什么不使用author/package
?喜欢:
import "howeyc/fsnotify"
那不太可能发生碰撞。还是其他一些“更短”的策略?是因为它“只适用于”go get
吗?还是有其他原因吗?
答案 0 :(得分:8)
如果您愿意,可以使用howeyc/fsnotify
。使用github.com/howeyc/fsnotify
时,可以理解该程序包是在Github上托管的。其他存储库也可以工作。
原因是它使用go get
更容易找到和安装依赖项。否则,您必须手动满足依赖项。因为在开源世界中分叉repos很常见,所以你可能有来自同一作者的修改版本。因此,它有助于区分您的项目所依赖的内容。
答案 1 :(得分:1)
Download and install packages and dependencies
用法:
go get [-d] [-fix] [-u] [build flags] [packages]
获取下载并安装导入路径指定的包, 以及他们的依赖。
签出或更新包时,查找分支或 与本地安装的Go版本匹配的标记。最多 重要的规则是,如果本地安装正在运行版本 “go1”,搜索名为“go1”的分支或标签。如果没有这样的话 版本存在它检索包的最新版本。
有关指定包的详细信息,请参阅“
go help packages
”。有关“go get”如何找到要下载的源代码的详细信息,请参阅“
go help remote
”。
导入路径支持go get
命令。表示远程存储库的路径以代码的路径开头。运行go help remote
命令以获取详细信息。