Golang学习笔记(三):包

原创做者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。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"
}

复制代码

你的关注,是我写做路上最大的鼓励!

相关文章
相关标签/搜索