# 函数响应式编程
开始之前了解一下什么是函数响应式编程?
函数响应式编程是种编程范式。它是通过构建函数操作数据序列,然后对这些序列做出响应的编程方式。它结合了函数式编程以及响应式编程
函数式编程
函数式编程---它需要我们将函数作为参数传递,或者作为返回值返还。我们可以通过组合不同的函数来得到想要的结果。
allPeople.filter{ people in people.age == 18 }.forEach { youngPeople in youngPeople.play(activity: .study )}
filter中返回值是people 是经过筛选的people 数组形式
个人在日常开发中用遇到的的就是函数式编程(链式调用) 就如在统计相关信息上传的时候 参数比较多
```statistics.name(hello).info(info).upload()```
函数式编程来操作序列
响应式编程
响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式。
现在学习的RxSwift中响应式编程来一个预理解:应该是 有并发和事件驱动结合观察者来编程的一种范式或者说是一种风格
Reactive响应式(反应式)编程 是一种新的编程风格,其特点是异步或并发、事件驱动、推送PUSH机制以及观察者模式的衍生。
函数响应式编程(两者融合)
由以上两种的编程范式,结合起来就得到了函数响应式编程。
函数式负责序列操作,响应式负责监听变化,响应这个序列。当然这个序列是具备着特别的封装(异步等)
我们通过不同的构建函数,来创建所需要的数据序列。最后通过适当的方式来响应这个序列。这就是函数响应式编程。
// 按钮点击序列
let taps: Observable<Void> = button.rx.tap.asObservable()
// 每次点击后弹出提示框
taps.subscribe(onNext: { showAlert() })