Go 与 Javascript 有一个相同的特性就是异步,异步程序回调函数是必不可少的,Go 中有两种方式实现回调。
直接传入函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package main
import ( "fmt" )
func Func3(a int, call func(b int) int) int { return call(a) }
func main() {
res := Func3(1, func(b int) int { return b }) fmt.Println(res) // 1
}
|
先定义后传入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package main
import ( "fmt" )
type Callback func(a int) int
func Func2(b int, callback Callback) int { return callback(b) }
func main() {
res := Func2(1, func(a int) int{ return a + 2 }) fmt.Println(res) // 3
}
|