1.函数返回其他函数函数,在被包含的函数可以写逻辑处理
override func viewDidLoad() {super.viewDidLoad()let catFunc = returnFunc()let str = catFunc(5)print(str)//小猫5岁了}// 函数返回其他函数func returnFunc()->(Int)->String{func catFunc(i:Int)->String{return "小猫\(i)岁了"}return catFunc(i:)}
2. 函数捕获变量,可以累计
override func viewDidLoad() {super.viewDidLoad()let catFunc = returnFunc()let str = catFunc(5)print(str)//小猫长大了5岁let str2 = catFunc(3)print(str2)//小猫长大了8岁let str3 = catFunc(3)print(str3)//小猫长大了11岁}// 函数返回其他函数func returnFunc()->(Int)->String{var age = 0func catFunc(i:Int)->String{age += ireturn "小猫长大了\(age)岁"}return catFunc(i:)}