RxSwift-函数响应式编程思想

2020-06-06  本文已影响0人  恍然如梦_b700

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就是一种响应式。

上一篇下一篇

猜你喜欢

热点阅读