代码目录结构
main.go:
package main
import (
//正常导包
"Go_Workspace/Golang_Study_Example/5-init/lib1"
//匿名导入,无法使用当前包的方法,但会执行当前包的内部init()方法
_ "Go_Workspace/Golang_Study_Example/5-init/lib1"
//包的别名
mylibi2 "Go_Workspace/Golang_Study_Example/5-init/lib2"
//直接调用容易重名
//. "Go_Workspace/Golang_Study_Example/5-init/lib2"
)
func main() {
//lib1.Lib1Test()
//lib2.libTest()
lib1.Lib1Test() //正常导包
mylibi2.Lib2Test() //包的别名
//Lib2Test() //. 直接调用
}
lib1.go:
package lib1
import "fmt"
// 当前lib1包提供的api
//方法首字母大写代表此方法是一个对外开放的接口
//小写则代表此方法只能在本包内调用
func Lib1Test() {
fmt.Println("lib1Test()......")
}
func init() {
fmt.Println("lib1.5-init()......")
}
lib2.go:
package lib2
import "fmt"
// 当前lib2包提供的api
func Lib2Test() {
fmt.Println("lib2Test()......")
}
func init() {
fmt.Println("lib2.5-init()......")
}
输出结果