Go 语言回调函数

回调函数

回调函数是一种通过将函数作为参数传递给其他函数,并在需要时由其他函数调用的技术。

在 Go 语言中实现回调函数

要使用回调函数,需要先定义一个函数类型,然后将该类型的函数作为参数传递给其他函数。

以下是一个简单的回调函数的示例:

package main

import (
	"fmt"
)

// 定义一个函数类型
type Callback func(int) int

// 执行回调函数的函数
func process(data int, callback Callback) int {
	// 调用回调函数
	result := callback(data)
	return result
}

func main() {
	// 通过匿名函数实现回调函数
	result := process(5, func(i int) int {
		return i + 2
	})
	fmt.Println(result) // 输出 7
}

动态参数形式的回调函数

package main

import (
	"fmt"
)

// 定义一个函数类型
type Callback func(...any) int

// 执行回调函数的函数
func process(data int, callback Callback) int {
	// 调用回调函数
	result := callback(data)
	return result
}

func main() {
	// 通过匿名函数实现回调函数
	result := process(5, func(args ...any) int {
		num, ok := args[0].(int)
		if ok {
			return num + 3
		} else {
			return 0
		}
	})
	fmt.Println(result) // 输出 8
}