iOS 什么是函数式编程

前言:当前只做理解性的常规背书,根据不断深入学习会不断丰富解读内容,欢迎评论提意见

函数式编程:Functional Programming

1 基本解释:

函数式编程 是一种思维模式,一种编程思想,一种编程方式,一种编程范式

2 基本特性:

不使用可变的变量处理 赋值,循环和其他命令式控制结构去编程

       好处:2.1 函数即不依赖外部的状态也不修改外部的状态函数调用的结果不依赖调用的时间和空间状态,这样写的代码容易进行推理,不容易出错。这使得单元测试和调试都更容易。

      2.2   线程安全:函数式编程可以帮我们解决这一痛点,每一个纯函数都是线程安全 

     时间状态:变量一旦有了状态,它就有可能随着时间而发生变化,时间是最不可预知的因素

     空间状态:如果把一个线程看成一个独立的空间,在程序的世界当中,空间会产生交叉重叠。一个变量如果可以被两个线程同时访问,它的值如果可以在两个空间发生变化,这个变量同样变得很危险

3 常规关键字

3.1高阶函数:参数为函数或返回值为函数的函数  //函数式编程就是指这种高度抽象的编程范式

3.2惰性求值:就是我们常常口语化的“懒加载”,表达式赋值给变量时,并不会马上参与计算求值,是当变量被调用时候才会计算。通过按需加载计算提升性能

4感悟:(1)函数式编程并不会减少我们的代码量,它改变的只是我们书写代码的方式

            (2) 编程方式表达更接近于自然语言,调用表达可直译(对命名准确性要求高),注重结果。

5使用举例:

OC中

- (void)getLastestYZToken:(void (^)(BOOL isSuccess))callBlock//参数是闭包block 自己在平时的开发中“不小心”就会使用函数式编程思想
{

    callBlock(isSuccess);
 }

 

参考:

1 http://www.cocoachina.com/ios/20161209/18325.html

2 http://blog.csdn.net/qinyuanpei/article/details/54986613

3 https://www.zhihu.com/question/28292740

 

posted on   ACM_Someone like you  阅读(1481)  评论(0编辑  收藏  举报

编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示