package main
import (
"fmt"
)
// process函数接受两个整数参数并返回它们的和
func process(a, b int) int {
return a + b
}
func main() {
// 创建一个channel用于传递结果
resultChan := make(chan int)
// 启动一个异步任务
go func() {
a, b := 3, 5
res := process(a, b)
// 将结果发送到channel
resultChan <- res
}()
// 通过回调函数处理返回结果
go func() {
result := <-resultChan
fmt.Printf("异步任务结果: %d\n", result)
close(resultChan)
}()
// 防止main函数退出
select {}
}
- 首先定义了
process
函数,该函数实现两个整数相加的功能。
- 在
main
函数中创建了一个int
类型的channel
resultChan
用于传递process
函数的计算结果。
- 使用
go
关键字启动一个匿名goroutine
,在这个goroutine
中调用process
函数并将结果发送到channel
。
- 再启动另一个匿名
goroutine
从channel
中接收结果并通过fmt.Printf
打印,模拟回调处理。
- 最后使用
select {}
阻塞main
函数,防止main
函数过早退出导致程序结束。