今天学习了如何导包,以及init函数
在go语言中,init相当于类的构造函数,例如,main.go导入了lib1包,那么在导入的时候,就会执行一次lib1包中的init函数
另外,go语言中,定义公共方法不同于其他语言会使用public,是首字母大写的为公共方法
package lib1
import "fmt"
// 首字母大写的函数相当于类的共用方法,小写别的包是调用不到的
func Lib1Test() {
fmt.Println("手动调用lib1")
}
// 这个在别的包就调用不到
func lib1Test1() {
fmt.Println("这个是内部方法")
}
// 别的包导入这个包时会执行这个函数,相当于类的构造函数,自动调用
func init() {
fmt.Println("初始化lib1")
}
然后说到导包,go导包的时候,如果没有使用Go Modules(这里我没学到,所以不详细写了),那么会默认从GOPATH/src目录里面去找你导入的包
我当前的项目目录是:GOPATH/src/golang/4-init
所以我要导包是这样写:
然后到匿名导包以及别名导包:
package main
import (
// 这个是匿名导包,只会执行 init 函数,无法调用其他函数
_ "golang/4-init/lib1"
// 别名导入
a2 "golang/4-init/lib2"
)
func main() {
// lib1.Lib1Test() // 匿名导入将无法调用此函数
// lib2.Lib2Test()
// 然后使用别名调用
a2.Lib2Test()
}



