// LearnGoProject Project
moc -
|- closure.go
main.go
go.mod
---
// go.mod
module LearnGoProject
go 1.16
---
// closure.go
package moc
import "fmt"
func TestClosure() {
addFunc1 := addN(10)
fmt.Printf("%d\n", addFunc1(3))
fmt.Printf("%d\n", addFunc1(7))
addFunc, subFunc := addOrSubN(10)
fmt.Printf("%d\n", addFunc(30))
fmt.Printf("%d\n", subFunc(30))
}
func addN(n int) func(x int) int {
return func(x int) int {
return x + n
}
}
func addOrSubN(n int) (func(y int) int, func(y int) int) {
addFunc := func(x int) int {
return x + n
}
subFunc := func(x int) int {
return x - n
}
return addFunc, subFunc
}
---
// mian.go
package main
import (
"LearnGoProject/moc"
)
func main() {
moc.TestString()
moc.TestClosure()
}
GoLang 闭包实践
最新推荐文章于 2023-11-16 20:37:22 发布