利用go语言闭包,创建一个计数器,当然使用结构体也是可以,但是普通函数只是完成一定的任务,并没有存储的能力。利用闭包解决
package main
import "fmt"
func main() {
c:=createcounter(0)//调用函数
fmt.Println(c())//因为函数返回的是一个函数,所以继续调用返回函数,能够实现在原始的基础上加一
fmt.Println(c())//再加一
}
func createcounter(init int) func()int {//创建函数,返回值为一个函数
if init<0{//判断是否小于零
init=0
}
return func() int {//返回的函数
init++//在原始的基础上加一
return init//函数返回的最终数
}
}