1.函数式在数学中的表达式为: y = f(x) -> x = f(x) -> y = f(f(x))
x 参数 2 = 1+1 = 0+2
f 函数
y 返回值
你发现没有 参数可以随便嵌套
2.在编程中函数式的优势体现在哪里呢?
这里我举一个例子:
假设给定一个数组 let array = [1,2,3,4,5,6,7],首先获取 > 3的数字,获取的数字之后 + 1,再获取所有数字中的偶数,想实现这个功能,我们可以通过for循环,代码如下:
for num in array{
if num > 3{
let number = num + 1
if (number % 2 == 0) {
print(number)
}
}
}
这个代码相信一般人都可以写出来,但是,这个代码的可读性与清晰度都不是很高,swift提供了一些函数式的方法,我们可以通过函数式实现:
array.filter{ $0 > 3}
.filter{ ($0+1) % 2 == 0 }
.forEach { print($0) }
可以看出,相比之下,这样的代码可读性非常强,甚至可以分行,一行代表一个业务逻辑。
响应式
我们再来理解一下什么是响应式,响应式其实很简单,即你动我也动,iOS中的KVO就是一种响应式。
网友评论