该命名主题的参考是" 博客:包名称 "
这包括:
避免不必要的包名冲突.
虽然不同目录中的包可能具有相同的名称,但经常一起使用的包应具有不同的名称.这减少了混淆以及客户端代码中本地重命名的需要.出于同样的原因,请避免使用与io或http等流行标准软件包相同的名称.
还要检查您的包裹发布实践,因为它有助于消除您text与其他人的歧视.
如" Go/Packages中的编程简介 "中所示:
math是Go的标准发行版中包的名称,但由于Go包可以是分层的,因此我们可以安全地为我们的包使用相同的名称.(真正的数学包只是数学,我们的是golang-book/chapter11/math)当我们导入我们的
math库时,我们使用它的全名(import "golang-book/chapter11/math"),但在math.go文件内部我们只使用名称的最后一部分(package math).当我们从库中引用函数时,我们也只使用短名称数学.如果我们想在同一个程序中使用这两个库,Go允许我们使用别名:
import m "golang-book/chapter11/math"
func main() {
xs := []float64{1,2,3,4}
avg := m.Average(xs)
fmt.Println(avg)
}
Run Code Online (Sandbox Code Playgroud)
m是别名.
正如在评论中提到由elithrar,戴夫·切尼有一些额外的提示:
在其他语言中,通过在其前面添加公司名称来确保您的包具有唯一的命名空间是很常见的
com.sun.misc.Unsafe.
如果每个人只编写与他们控制的域相对应的包,则几乎不可能发生冲突.在Go中,约定是将源代码的位置包含在包的导入路径中,即
$GOPATH/src/github.com/golang/glog
Run Code Online (Sandbox Code Playgroud)
这不是语言所必需的,它只是一个特征
go get.
| 归档时间: |
|
| 查看次数: |
8856 次 |
| 最近记录: |