RxSwift(一)函数响应式编程

2019-07-24  本文已影响0人  伤心的EasyMan

前言

从一年前开始使用RAC时,那会就知道ReactiveCocoa是一个灵感来源于函数响应式编程的框架,但并没有去深入了解。最近又开始了RxSwift的学习和使用,先从最基础的函数响应式编程思想开始学习。

关于函数式编程(Functional Programming)思想

func factorial(a:Int)->(Int){
           if a == 1{
               return 1
           }
           return 1 * sum(a:a - 1)
       }

上面的代码是一个阶乘的递归函数,体现了在函数式编程里是基本上没有状态量,也没有赋值语句,只有表达式的。同时也可以体现一点,函数式编程是用递归作为流程的机制

关于响应式编程(Reactive Programming)思想

响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式。

响应式编程的“变化传递”就相当于果汁流水线的管道;在入口放进橙子,出来的就是橙汁;放西瓜,出来的就是西瓜汁,橙子和西瓜、以及机器中的果肉果汁以及残渣等,都是流动的“数据流”;管道的图纸是用“声明式”的语言表示的。
在我们日常开发中,如果能搭建一条从数据层到view层的通道,那么我们不需要通过命令式来更改数据后去刷新UI,完全可以在改变了数据后,利用这个通道自动传递这个变化到View上,然后自动刷新了界面。当然,可以建立双向通道,View的改变也能实现数据的自动修改。

函数响应式编程(Functional Reactive Programming)

FRP - Functional Reactive Programming 函数反应式编程是一种编程范例,主要是通过 functional programming 函数式编程的函数为基本模块来实现反应式编程 reactive programming,目的是简化编程的步骤,例如简化界面编程时数据的实时更新流程。简单来说就是 使用函数来达到数据的自动异步更新。

总结

其实这篇主要的目的是为了在研究RxSwift前能对于RX家族的函数式响应编程思想有一定的了解,在使用和深入挖掘RxSwift时能起到作用。

推荐一篇英文的关于响应式编程思想的好文:
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754

上一篇 下一篇

猜你喜欢

热点阅读