(14)Go导入包几种方式
(1)一般方式【导入单个和多个】
(2)匿名导入包/忽略包 (主要用到有些包的init函数)
(3)点操作包
(4)包别名/自定义包名
package main
////导入单个包
//import "fmt"
//
//func main() {
// fmt.Println("导入包操作案例!")
//}
//导入多个包方式
import (
"fmt"
"os"
)
func main() {
fmt.Println("导入包操作案例!")
fmt.Println(os.Args)
}
//// 忽略包
//// 应用场景 去掉此包
//import _ "fmt"
//
//func main() {
// //fmt.Println("121212")
//}
////.操作
//import . "fmt"
//func main() {
// Println("点操作包的方式")
//}
////给包起别名
//import xx "fmt"
//func main() {
// xx.Println("给包起别名操作")
//}
init()初始化函数
init()函数介绍
在Go语言程序执行时导入包语句会自动触发包内部init()
函数的调用。需要注意的是: init()
函数没有参数也没有返回值。 init()
函数在程序运行时自动被调用执行,不能在代码中主动调用它。
包初始化执行的顺序如下图所示:
init()函数执行顺序
Go语言包会从main
包开始检查其导入的所有包,每个包中又可能导入了其他的包。Go编译器由此构建出一个树状的包引用关系,再根据引用顺序决定编译顺序,依次编译这些包的代码。
在运行时,被最后导入的包会最先初始化并调用其init()
函数, 如下图示: