개요
- Go closure, Go function closure
- Go 클로저, Go 함수 클로저
package main
import "fmt"
func main() {
fmt.Println( func(x, y int) int { return x+y }(2,3) )
}
package main
import "fmt"
func main() {
mySum := func(x, y int) int { return x+y }
fmt.Println( mySum(2,3) )
}
// https://tour.golang.org/moretypes/25
package main
import "fmt"
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
func main() {
pos, neg := adder(), adder()
for i := 0; i < 10; i++ {
fmt.Println(
pos(i),
neg(-2*i),
)
}
}
// https://gobyexample.com/closures
package main
import "fmt"
func intSeq() func() int {
i := 0
return func() int {
i++
return i
}
}
func main() {
nextInt := intSeq()
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
newInts := intSeq()
fmt.Println(newInts())
}
같이 보기