原创做者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。git
Go语言中的包,相似其余语言中的库或命名空间,主要是用于组织代码和方便代码复用。程序员
做为一个独立的空间,每一个包能够包含多个以.go结尾的源代码文件。github
包所在的目录路径,则做用包的导入路径,好比有github.com/util,对应的路径为:bash
$GOPATH/src/github.com/util函数
另外,包名最要使用小写,每一个包有全局惟一的导入路径,包名则是目录路径,如github.com/util,util
是包名工具
package util
var a string
func Format(f format,a ...interface{}){
//函数体
}
复制代码
在上面定义的util
包中,Format
函数首字母为大写,由于,在其余包能够访问,而变量a则只在包内可见。spa
包的源文件代码第一句是以package
开头的包声明语句,在package
以前,能够添加注释做为包的说明,通常只须要在一个源文件中添加说明,以后可使用Go提供的工具链导出包文档,若是包文档说明很大,能够在包中单独建一个doc.go
文档说明文档。code
在包中,可使用表达式或常量值初始化某些变量,对于一些复杂的初始化,也能够放在init
函数中,包中的每一个源文件均可以定义一个init
函数,这个函数不会被导出,而编译器在编译包时,会根据源文件编译顺序,执行每个源文件中的init
函数。orm
所以,main包中main函数所在的源文件若是有定义init
函数,则通常最后执行,由于编译要保证main
执行前,全部包都初始化好了。cdn
package util
var c = b + c
var a = 1
var b = 2
var d string
func init(){
d = "str"
}
复制代码
你的关注,是我写做路上最大的鼓励!