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

}
03-16 23:48