golang中将函数作为参数传递

478 阅读1分钟

在Go中,函数可以作为参数传递给其他函数。下面是一个简单的例子,演示了如何将一个函数作为参数传递给另一个函数:

package main

import "fmt"

// 定义一个函数类型,该类型的函数接受两个整型参数并返回一个整型结果
type calculate func(int, int) int

// 定义一个函数,该函数接受一个calculate类型的函数作为参数
// 并调用该函数来计算两个整数的和
func add(x, y int, f calculate) int {
    return f(x, y)
}

func main() {
    // 定义一个函数,该函数接受两个整型参数并返回它们的和
    fc := func(x, y int) int {
        return x + y
    }

    // 调用add函数,并将add函数作为参数传递给它
    // 该函数调用会计算两个整数的和并返回结果
    result := add(1, 2, fc)
    fmt.Println(result) // Output: 3
}

在上面的代码中,我们定义了一个名为calculate的函数类型,该类型的函数接受两个整型参数并返回一个整型结果。

然后我们定义了一个名为add的函数,该函数接受两个整型参数和一个calculate类型的函数作为参数。在函数体内,我们调用传递给函数的calculate类型的函数,