阅读 146

Golang学习笔记(三):包

原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。

概念

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

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

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

$GOPATH/src/github.com/util

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

访问性

package util

var a string

func Format(f format,a ...interface{}){
    //函数体
}

复制代码

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

包文档

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

包的初始化

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

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

package util

var c = b + c

var a = 1

var b = 2

var d string

func init(){
    d = "str"
}

复制代码

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

关注下面的标签,发现更多相似文章
评论