合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[info] Go中的包 * **Go中的包概念:** 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。 如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。 你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包 * **Go中的包分类:** ![](https://img.kancloud.cn/ad/bf/adbfa6d4d6bf85249ae0ff01781dc209_1544x733.png) * **Go中的import 和 package:** golang使胞package来管理定义模块,可以使用import关键字来导入使用。 1. 如果导入的是go自带的包,则会去安装目录$GOROOT/src按包路径加载,如fmt包 2. 如果是我们go get安装或自定义的包,则会去$GOPATH/src下加载 * **Go中的 init 与 main:** main函数只能用于main包中,且只能定义一个。如同PHP框架中的index.php。 go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。可以理解为如同其他语言中的面向对象。 ~~~ package main // 多个包有 init 方法,则根据引入执行顺序执行。 import "fmt" // main 只能有1个 func main() { n := 20 fmt.Println(n) } // 初始化(在 main 之前执行) func init() { fmt.Println("init 方法") } ~~~ ![](https://img.kancloud.cn/ee/4a/ee4a1fb14392e4c8fd56a3c50b6d7d17_1518x721.png)