GO–init函数,匿名函数
介绍:
- 每个源文件都可以包含一个init函数,该函数会在main函数执行前,被GO运行框架调用,也就是说init会在main函数前被调用
- init函数,通常可以在init函数中完成初始化工作
注意:init函数的注意事项和使用细节
- 如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程是
- 全局变量定义 > init函数 > main函数
匿名函数
介绍:
- Go语言支持匿名函数,当某个函数只希望使用一次,可以考虑使用匿名函数,当然,匿名函数也可以实现多次调用
使用场景:
-
在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次
-
package main import ( "fmt" ) func main() { // 求两个数的和,使用匿名函数的方式完成 res1 := func(n1 int, n2 int) int { return n1 + n2 }(10, 20) fmt.Println("res1=", res1) }
-
-
将匿名函数复制给一个变量,在通过变量来调用匿名函数
-
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 } res2 := a(10, 30) fmt.Println("res2=", res2) res3 := a(90, 30) fmt.Println("res3=", res3) }
-
-
全局匿名函数
-
package main import ( "fmt" ) var ( // fun1就是一个全局匿名函数 Fun1 = func(n1 int, n2 int) int { return n1 * n2 } ) func main() { // 全局匿名函数的使用 res4 := Fun1(4, 3) fmt.Println("res4=", res4) }
-