包裹声明的目的是什么?

包裹声明的目的是什么?,第1张

包裹声明的目的是什么?

软件包的名称不必与目录名称一致。可以

package foobar
在目录中
xyz/go-foobar
。在这种情况下,
xyz/go-foobar
成为
导入路径 ,但是用于质量标识符(功能,类型等)的 软件包名称 将是
foobar

这是一个使它更具体的示例:我创建了一个测试包http://godoc.org/github.com/dmitris/go-
foobar
(源于https://github.com/dmitris/go-
foobar)-您从文档页面可以看到,导入路径为“
github.com/dmitris/go-
foobar”,但包名称为

foobar
,因此您可以将其提供的函数称为
foobar.Demo()
(不是
go-foobar.Demo()
)。

一个类似的真实示例-NSQ Messaging平台的导入路径为“ github.com/nsqio/go-nsq”,而程序包名称为“
nsq”:http
://godoc.org/github.com/nsqio/ go-nsq。但是,为了用户友好和简单起见,标准和推荐的做法是尽可能使导入路径的最后部分和程序包名称相同。

package main
不是没有用的-它告诉Go编译器创建一个可执行文件,而不是.a库文件(带有
go install
go get
;
gobuild
会丢弃编译结果)。可执行
package main
文件以放置文件的目录名称命名。再举一个具体的例子-
我制作了一个测试程序https://github.com/dmitris/go-foobar-
client,将其安装在一起
go getgithub.com/dmitris/go-foobar-client
,您应该将
go-foobar-client
可执行文件放在$ GOPATH /
bin目录中。
package main
Go编译器从放置文件的目录名称中获取可执行文件的名称。
.go
包含该
main()
功能的文件的文件名并不重要-
在上面的示例中,我们可以将其重命名
main.go
client.go
或其他内容,但是只要调用封闭目录
go-foobar-client
,就可以这样命名生成的可执行文件。

有关Go软件包的其他可访问且实用的阅读指南,我建议Dave Cheney的文章“建立Go项目的五个建议”
http://dave.cheney.net/2014/12/01/five-suggestions-for-
setting一个项目。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5505921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存