go语言闭包函数怎么使用

46次阅读
没有评论

共计 646 个字符,预计需要花费 2 分钟才能阅读完成。

在 Go 语言中,闭包函数是指一个函数可以访问到其外部作用域中的变量。闭包函数可以将变量作为参数或返回值,用于实现某些特定的功能。

下面是一个简单的闭包函数的例子:

func main() {// 定义匿名函数并赋值给变量 add
    add := func(x, y int) int {return x + y
    }

    // 调用闭包函数
    result := add(3, 5)
    fmt.Println(result) // 输出:8
}

在上面的例子中,我们定义了一个匿名函数并将其赋值给变量 add,该函数可以访问到其外部作用域中的变量xy,并返回它们的和。我们通过调用 add 函数,传入参数 3 和 5,得到结果 8。

闭包函数还可以用于实现函数工厂,即返回一个函数的函数。下面是一个示例:

func adder() func(int) int {sum := 0
    return func(x int) int {
        sum += x
        return sum
    }
}

func main() {// 调用函数工厂,返回一个闭包函数
    a := adder()

    // 调用闭包函数
    fmt.Println(a(1)) // 输出:1
    fmt.Println(a(2)) // 输出:3
    fmt.Println(a(3)) // 输出:6
}

在上面的例子中,我们定义了一个 adder 函数,它返回一个闭包函数。闭包函数中的变量 sum 会在每次调用时保留其状态。我们通过调用 adder 函数得到一个闭包函数 a,然后分别调用a 函数并传入不同的参数,最后输出结果。可以看到,每次调用 a 函数时,变量 sum 会保持其之前的累加结果。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-03-21发表,共计646字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)