Go语言中init函数与匿名函数使用浅析
fiveym 人气:0init函数
基本介绍
每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数前被调用
package main import "fmt" //init函数,通常可以在init函数中完成初始化工作 func init() { fmt.Println("init()") } func main() { fmt.Println("main()") } /* init() main() */
注意事项和细节
1.如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程是变量定义->init函数->main函数
2.init函数最主要的作用,就是完成一些初始化的工作
案例
如果main.go和utils.go都含有变量定义init函数时,执行的流程又是怎么样的?
匿名函数
介绍
Go支持匿名函数,如果我们某个函数知识希望使用一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用。
调用方式
方式1
在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次
package main import ( "fmt" ) func main() { res1 := func ( n1 int, n2 int) int { return n1 + n2 }(10, 20) fmt.Println("res1=", res1) }
方式2
将匿名函数赋给一个变量(函数变量),再通过变量来调用匿名函数
package main import ( "fmt" ) func main() { //将匿名函数func (n1 int,n2 int)int赋值给a变量 //则a的数据类型就是函数类型,此时,我们可以通过a完成调用 a := func ( n1 int, n2 int) int { return n1 + n2 } res1 := a(10, 20) fmt.Println("res1=", res1) }
加载全部内容