编写 Go 库(Packages)的黄金法则

Go

关于程序包

  • 只是一个物理目录.

  • 让你组织你的代码.

  • 通过允许你使用其他程序包来实现可重用性.

  • 帮助实现代码封装.

  • 代表单个概念.

  • 小了不少.


打包规则

源文件

  • 用 Go 编写的所有代码都属于一个包

包目录

  • 目录名称和包名应该一样.
  • 同一个目录下的所有源文件都仅属于同一包.
  • 你不能将一个包拆分到多个目录中去.
  • 程序包位于名为 $GOPATH/src 工作目录中.

标识

  • 如果一个程序包位于单独的目录中, 则可以与另一个程序包有相同的包名称.

包类型

  • 主程序包是可执行程序的入口点程序包.
  • 库程序包仅是可重复使用的包, 不含主包和入口点 (大多数情况下是).

函数和变量

  • 在 Go 包中, 没有诸如局部变量或函数仅属于一个源代码文件之类的东西.

导入

  • 可以通过 import 关键字导入程序包. 标准库程序包只能通过其名称 (而不是完整路径) 导入. 导入其他软件包时, 最好提供完整路径.
  • 对于简单程序, 你可以只有 package main 主程序包. 对于较大的程序, 你 应该 定义自己的程序包.
  • 包仅导入一次. 你可以在多个软件包中导入同一个软件包, 并且只能导入一次.

子包

  • 不支持.
  • 你可以将软件包放入其他软件包的目录中来弱化组织的子包概念.

好了, 到这差不多了. 谢谢你能看到这里.

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://blog.learngoprogramming.com/go-p...

译文地址:https://learnku.com/go/t/47067

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!