在 Golang 中,回调函数可以定义为一个函数类型,并将其作为参数传递给另一个函数。以下是回调函数的示例定义:
type CallbackFunc func(int) int
func processNumbers(numbers []int, callback CallbackFunc) []int {
result := make([]int, len(numbers))
for i, val := range numbers {
result[i] = callback(val)
}
return result
}
在上面的代码中,我们定义了一个名为 CallbackFunc 的函数类型,它接受一个整数参数并返回一个整数值。然后,我们使用 processNumbers 函数来处理一组数字,并将回调函数作为第二个参数传递。
例如,以下代码演示了如何使用 processNumbers 函数来计算每个数字的平方:
func square(n int) int {
return n * n
}
numbers := []int{1, 2, 3, 4, 5}
squared := processNumbers(numbers, square)
fmt.Println(squared) // Output: [1 4 9 16 25]