Go基础(闭包_2)

Tutorial: Go初级 Category: Go Published: 2026-04-07 13:58:26 Views: 21 Likes: 0 Comments: 0
package main

import "fmt"

func adder2(x int) func(int) int {
    return func(y int) int {
        x += y
        return x
    }
}
func main() {
    var f = adder2(10) // 返回一个 func,功能是返回 y + x (x 已经是10)
    fmt.Println(f(10)) // 20   10 + 10
    fmt.Println(f(20)) // 40   20 + 20
    fmt.Println(f(30)) // 70   40 + 30

    f1 := adder2(20)    // 返回一个 func,功能是返回 y + x (x 已经是20)
    fmt.Println(f1(40)) // 60   20 + 40
    fmt.Println(f1(50)) // 110  60 + 50
}