函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。
函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)
需求:写一个加法计算器,并且加法计算器自带判断是否等于某个值.
1、创建计算机对象,封装对应的需求实现方法
2、外部调用,把一个操作写成一系列的方法
Swift的函数式编程
一.函数可以像 Int 或者 String 那样被赋值给变量,也可以作为另一个函数的输入参数,或者另一个函数的返回值来使用
二. 函数能够捕获存在于其局部作用域之外的变量
三. 有两种方法可以创建函数,一种是使用 func 关键字,另一种是 { }。在 Swift 中,后一种被称为闭包表达式
1、把函数赋值给变量
2、把函数作为另一个函数的参数
3、把函数作为另一个函数的返回值
4、函数可以捕获存在于它们作用范围之外的变量
innerFunc捕获了counter变量属性
一个函数和它所捕获的变量环境组合起来被称为闭包
上面 f 和 g 都是闭包的 例子,因为它们捕获并使用了一个在它们外部声明的非局部变量 counter。
闭包
闭包指的是一个函数以及被它所捕获的所有变量的组合。而使用{ } 来创建的函数被称为闭包表达式
可以把闭包表达式理解为匿名的函数,可以理解为把闭包赋值给了以函数名为名的变量
闭包的优点:简洁,像是 map 这样的将一个快速实现的函数传递给另一个函数时,这个特点更为明显
如果函数的最后一个参数是闭包表达式的话,你可以将这个闭包表达式移到函数调用的 圆括号的外部。这样的尾随闭包语法
如果一个函数除了闭包表达式外没有别的参数,那么方法名后面的调用时的圆括 号也可以一并省略。
1、使用func定义函数
2、使用闭包表达式的语法来写相同的函数,像之前那样将它传给 map:
3、使用Swift 中的一些特性,来让代码更加简洁