iOS 函数式(链式)编程
2021/10/6 17:11:22
本文主要是介绍iOS 函数式(链式)编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://www.cnblogs.com/chzheng/p/5949376.html
函数式编程概念
- 函数式编程是种编程范式
- 函数式编程
Functional Programming
,简写FP
- 使用特点,将局部小的逻辑计算封装为一个个小的函数体,在实际应用中将这些小的函数体
自由组合
- 可以接受函数当作输入(参数)和输出(返回值)
- 函数式编程的基础是
block
/闭包
- 函数式编程的代表作品:
Masnory
/SnapKit
make.centerY.equalTo(self.view).offset(100);
- 参考资料:http://baike.baidu.com/view/1711147.htm
函数式编程体验
基本方法调用
- 定义 Person 类
@interface Person : NSObject - (void)eat; - (void)run; @end @implementation Person - (void)eat { NSLog(@"吃"); } - (void)run { NSLog(@"跑"); } @end
- 调用方法
Person *p = [[Person alloc] init]; [p run]; [p eat];
- 存在问题,每个方法要分别调用,不能组合调用
改进一 —— 添加方法的返回值
- (Person *)eat1 { NSLog(@"吃1"); return self; } - (Person *)run1 { NSLog(@"跑1"); return self; }
- 方法调用
[[person eat1] run1];
- 改进点
- 可以在一个方法的基础上继续调用后续的方法
- 方法调用顺序更加灵活
改进二 —— 将返回值修改为 block,以函数的形式调用
- (Person * _Nonnull (^)())eat2 { Person * (^myEatBlock)() = ^ Person * () { NSLog(@"吃2"); return self; }; return myEatBlock; } - (Person * _Nonnull (^)())run2 { return ^ Person * { NSLog(@"跑2"); return self; }; }
- 执行函数
person.eat2().run2(); person.run2().eat2();
改进三 —— 增加函数参数
- (Person * _Nonnull (^)(NSString * _Nonnull))eat3 { return ^ Person * (NSString * food) { NSLog(@"吃 %@", food); return self; }; } - (Person * _Nonnull (^)(float))run3 { return ^ Person * (float distance) { NSLog(@"跑了 %f 米", distance); return self; }; }
- 执行函数
p.run3(100).eat3(@"food"); 简单的实际运用可以参考 我的这篇文章
这篇关于iOS 函数式(链式)编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12Axios库资料:新手入门必读教程
- 2024-11-11Axios库项目实战:新手入门教程
- 2024-09-29Axios库教程:初学者必备指南
- 2024-08-29Axios库资料:新手入门指南与基本使用教程
- 2024-03-14system bios shadowed
- 2024-03-14gabios
- 2024-02-07iOS应用提交上架的最新流程
- 2024-02-06打包 iOS 的 IPA 文件
- 2023-12-07uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ?
- 2023-11-25uniapp IOS从打包到上架流程(详细简单) 原创