(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()函数, 如下图示:

posted @ 2019-11-04 23:10  jadeshu  阅读(265)  评论(0编辑  收藏  举报