go-import

go 会先调用 package main 里面 main 方法,这个是程序入口,然后初始化引入包的变量,执行引入包的 init 函数,执行 main 的 init 函数

同包下的函数引用

编译的时候,编译目录,不是单个文件,就会全都编译了。

导入包

常规方式,通过包名lib调用SayHello方法。lib.SayHello()
import "xxx/lib"

这里的 m 是包名 lib 的别名,m.SyayHello() 。该方式合适的场景:包名复杂,包名冲突
import m "xxx/lib"

import . "xxx/lib"
这里的点.符号表示,对包 lib 的调用直接省略包名,例如调用lib.SayHello方法

package main

import . "xxx/lib"

func main() {
SayHello()
}


improt _ "xxx/lib"
特殊符号"_"仅仅会导致 lib 执行初始化工作,如初始化全局变量,调用 init 函数。

init函数

先初始化变量,然后执行包的init函数
一个包可以有0-n个init函数,安装出现的顺序执行。