package main
import "fmt"
func main() {
var p2,progress int
//获得武松和鲁达各自的“闭包内层函数”
//闭包的作用是保存“各自的内层函数状态”
f1 := GetDoTaskFunc()
f2 := GetDoTaskFunc()
//交错的执行任务
progress = f1("武松",13)
p2 = f2("鲁达",12)
progress = f1("武松",13)
p2 = f2("鲁达",13)
progress = f1("武松",1)
p2 = f2("鲁达",13)
//查看各自的状态
//各自的任务被保存在各自的闭包中
fmt.Print("鲁达的进度说:",p2)
fmt.Println("二哥的进度是",progress)
//f1 := GetDoTaskFunc()
}
func GetDoTaskFunc() func(name string,hours int) (progress int) {
var progress int = 0
f := func(name string,hours int) int {
fmt.Printf("%s头领带队行军%d的小时\n",name,hours)
progress += hours
return progress
}
return f
}