2022-4-18 实习Day17
1、新贸金系统汇出汇款业务手动测试。–3小时 30%
2、新一代贸金系统汇款业务操作手册修改完毕 –3小时 100%
Golang编程学习(part 12)
1、init函数
每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import "fmt"
func init() { fmt.Println("init执行了!!!") }
func main() { fmt.Println("main()...") }
init执行了!!! main()...
|
2、init函数注意事项和细节
① 如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程为全局变量定义—>init函数—>main函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package main
import "fmt"
var age = test()
func test() int {
fmt.Println("test()") return 90 }
func init() { fmt.Println(age) fmt.Println("init执行了!!!") }
func main() { fmt.Println("main()...age=", age) }
test() 90 init执行了!!! main()...age= 90
|
② init函数最主要的作用就是完成一些初始化的工作,比如下列案例
1 2 3 4 5 6 7 8 9 10 11 12
| package utils import "fmt" var Age int var Name string
func init(){ fmt.Println("utils 包的 init()...") Age = 100 Name="tom~" }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package main
import ( "fmt" "pkgOne/main/utils" )
var age = test()
func test() int {
fmt.Println("test()") return 90 }
func init() { fmt.Println(age) fmt.Println("init执行了!!!") }
func main() { fmt.Println("main()...age=", age) fmt.Println("Age=", utils.Age, "Name=", utils.Name) }
|
1 2 3 4 5 6 7 8 9 10 11
| utils 包的 init()...
test()
90
init执行了!!!
main()...age= 90
Age= 100 Name= tom~
|
③ 细节说明:面试题,如果main.go 和 utils.go 都含有变量定义,init函数时,执行的流程又是怎么样的呢?
