包
Go允许我们定义自己的包。正如我们在第1章中讨论过的,包是一组代码,它们都做类似的事情。fmt包格式化输出,math包处理数字,strings包处理字符串,等等。我们已经在多个程序中使用了来自每一个包的函数。
- 能够在程序之间使用相同的代码是包存在的主要原因之一。如果你的部分代码在多个程序之间共享,你应该考虑将它们移到包中。
创建一个新包
- 需要包外使用的资源需要首字母大写。
将包导入程序
import ( "awesomeProject/src/myppage" "fmt" )
包命名规范
使用包的开发人员每次调用包中的函数时都需要输入包名。(想想fmt.Printf、fmt.Println、fmt.Print等)为了尽可能地使之不那么痛苦,包名应该遵循以下几个规则:
- 包名应全部为小写
- 如果可能的话,应该是一个词。如果需要两个词,不应该用下划线分隔,第二个词也不应该大写。(strconv包就是一个例子。)
- 如果含义相当明显,名称应该缩写(如fmt)
- 导入的包名可能与本地变量名冲突,所以不要使用包用户可能也想使用的名称。(例如,如果fmt包被命名为format,那么导入该包的任何人如果把一个局部变量也命名为format,则将面临冲突的风险)
包限定符
当访问从不同包导出的函数、变量或类似的东西时,你需要通过在函数或变量前面输入包名来限定它们的名称。但是,当访问定义在当前包中的函数或变量时,则不应该限定包名。
常量
- 许多包导出常量:从不更改的命名值。
常量声明看起来很像变量声明,具有名称、可选的类型和常量值。但规则略有不同:
·使用const关键字而不是var关键字。
必须在声明常量时赋值;不能像变量那样以后赋值。
·变量有:=短变量声明语法,但是常量没有等效的语法。
与变量声明一样,你可以省略类型,它将从分配的值推断出来
变量的值可以变化,但是常量的值必须保持不变。试图为常量分配新值将导致编译错误。这是一个安全特性:常量应该用于不会更改的值。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!



