10.1 回顾嵌套函数

一门计算语言要支持闭包的前提有两个。

  • 支持函数类型,能够将函数作为参数或返回值传递。

  • 支持函数嵌套。

这两个前提在Swift中都是满足的,我们先回顾一下9.6节中嵌套函数的示例,通过这个示例,来了解一下闭包的概念以及闭包与函数类型和函数嵌套之间的内在关系。

还记得9.6节中的示例吗?如下所示:

  1. func calculate(opr :String)-> (Int,Int)-> Int {
  2. //定义+函数
  3. func add(a:Int, b:Int) -> Int {
  4. return a + b
  5. }
  6. //定义-函数
  7. func sub(a:Int, b:Int) -> Int {
  8. return a - b
  9. }
  10. var result : (Int,Int)-> Int
  11. switch (opr) {
  12. case "+" :
  13. result = add 
  14. case "-" :
  15. result = sub 
  16. default:
  17. result = add
  18. }
  19. return result
  20. }

该示例定义了calculate函数,并且在calculate函数中定义了嵌套函数addsubcalculate函数的返回值是(Int,Int)-> Int函数类型。