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 = 0
func catFunc(i:Int)->String{
age += i
return "小猫长大了\(age)岁"
}
return catFunc(i:)
}