10.1 回顾嵌套函数
一门计算语言要支持闭包的前提有两个。
支持函数类型,能够将函数作为参数或返回值传递。
支持函数嵌套。
这两个前提在Swift中都是满足的,我们先回顾一下9.6节中嵌套函数的示例,通过这个示例,来了解一下闭包的概念以及闭包与函数类型和函数嵌套之间的内在关系。
还记得9.6节中的示例吗?如下所示:
func calculate(opr :String)-> (Int,Int)-> Int {
//定义+函数
func add(a:Int, b:Int) -> Int {
return a + b
}
//定义-函数
func sub(a:Int, b:Int) -> Int {
return a - b
}
var result : (Int,Int)-> Int
switch (opr) {
case "+" :
result = add
case "-" :
result = sub
default:
result = add
}
return result
}
该示例定义了calculate
函数,并且在calculate
函数中定义了嵌套函数add
和sub
。calculate
函数的返回值是(Int,Int)-> Int
函数类型。