Golang中的匿名函数
Golang中的函数不能嵌套,但是在函数内部可以定义匿名函数,实现一下简单功能的调用。
所谓匿名函数就是,没有名称的函数。
语法格式如下:
当然可以既没有参数,可以没有返回值
匿名函数实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package main
import "fmt"
func main() { max := func(a int, b int) int { if a > b { return a } else { return b } } i := max(1, 2) fmt.Printf("i: %v\n", i) }
|
运行结果:
自己执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import "fmt"
func main() { max := func(a int, b int) int { if a > b { return a } else { return b } }(1, 2) fmt.Printf("max: %v\n", max) }
|
运行结果:
用于在函数内部做一些运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package main
import "fmt"
func f1() { name := "weiyunfeng" age := "22" f2 := func() string { return name + age } msg := f2() fmt.Printf("msg: %v\n", msg) }
func main() { f1() }
|
运行结果: