Golang学习笔记(三):包

https://juejin.im/post/5c7fcf17e51d451aaa21b3e6

概念

Go语言中的包,类似其他语言中的库或命名空间,主要是用于组织代码和方便代码复用。

作为一个独立的空间,每个包可以包含多个以.go结尾的源代码文件。

包所在的目录路径,则作用包的导入路径,比如有github.com/util,对应的路径为:

$GOPATH/src/github.com/util

另外,包名最要使用小写,每个包有全局唯一的导入路径,包名则是目录路径,如github.com/util,util是包名

访问性

  1. package util
  2. var a string
  3. func Format(f format,a ...interface{}){
  4. //函数体
  5. }

在上面定义的util包中,Format函数首字母为大写,因为,在其他包可以访问,而变量a则只在包内可见。

包文档

包的源文件代码第一句是以package开头的包声明语句,在package之前,可以添加注释作为包的说明,一般只需要在一个源文件中添加说明,之后可以使用Go提供的工具链导出包文档,如果包文档说明很大,可以在包中单独建一个doc.go文档说明文档。

包的初始化

在包中,可以使用表达式或常量值初始化某些变量,对于一些复杂的初始化,也可以放在init函数中,包中的每个源文件都可以定义一个init函数,这个函数不会被导出,而编译器在编译包时,会根据源文件编译顺序,执行每一个源文件中的init函数。

因此,main包中main函数所在的源文件如果有定义init函数,则一般最后执行,因为编译要保证main执行前,所有包都初始化好了。

  1. package util
  2. var c = b + c
  3. var a = 1
  4. var b = 2
  5. var d string
  6. func init(){
  7. d = "str"
  8. }
ft_authoradmin  ft_create_time2019-08-03 17:04
 ft_update_time2019-08-03 17:04