Golang 包
包是Go语言中最强大的部分。包的目的是设计和维护大量的程序,将相关的功能组合成单一的单元,使它们能够易于维护和理解,并独立于其他包的程序。这种模块化使它们能够共享和重复使用。在Go语言中,每个包都被定义了一个不同的名字,而且这个名字与它们的功能很接近,比如 “字符串 “包,它包含了只与字符串相关的方法和函数。
重要观点
1.导入路径: 在Go语言中,每个包都由一个独特的字符串定义,这个字符串被称为导入路径。在导入路径的帮助下,你可以在你的程序中导入包。比如说。
这句话说明你正在你的程序中导入一个 fmt 包。包的导入路径是全球唯一的。为了避免与标准库以外的包的路径发生冲突,包的路径应该以拥有或托管该包的组织的互联网域名开始。例如。
2.包声明: 在Go语言中,包声明总是出现在源文件的开头,这个声明的目的是为了在该包被其他包导入时确定其默认标识符。比如说。
3.导入声明: 导入声明紧跟在包声明之后。Go源文件包含零个或多个导入声明,每个导入声明都在括号内指定一个或多个包的路径。比如说
当你在你的程序中导入一个包时,你被允许访问该包的成员。例如,我们有一个名为 “sort “的包,所以当你在程序中导入这个包时,你可以访问sort.Float64s()、sort.SearchStrings()等该包的函数。
4.空白导入: 在Go编程中,有时我们会在程序中导入一些包,但我们并没有在程序中使用它们。当你运行这类包含未使用的包的程序时,那么编译器会给出一个错误。因此,为了避免这种错误,我们在包的名称前使用一个空白标识符。比如说。
它被称为空白导入。它被用于许多或某些场合,当主程序可以在编译时启用空白导入附加包所提供的可选功能时。
5.嵌套包: 在Go语言中,你可以通过创建一个子目录在另一个包内创建一个包。嵌套包可以像根包一样导入。比如说。
这里,数学包是主包,cmplx包是嵌套包。
6. 有时一些包可能有相同的名字,但这种类型的包的路径总是不同。例如,数学包和密码包都包含一个名为rand的包,但这个包的路径不同,即math/rand和crypto/rand。
7. 在Go编程中,为什么主包总是出现在程序的顶部?因为主包告诉go build,它必须激活链接器来制作一个可执行文件。
给包起名
在Go语言中,当你为一个包命名时,你必须始终遵循以下几点。
- 当你创建一个包的时候,包的名字必须是简短的。例如strings, time, flag等都是标准的库包。
- 包的名称应该是描述性的和不含糊的。
- 总是尽量避免选择常用的或用于局部相对变量的名称。
- 包的名称一般采用单数形式。有时一些包的名字是复数形式,如字符串、字节、缓冲区等。因为要避免与关键词的冲突。
- 一定要避免已经有其他内涵的包名。比如说。
例子
输出