函数式编程思想
就是把每个操作都写作一连串的函数或者方法,使代码高度聚合,便于管理。
正因为每次都可以调用自己的方法,所以每次都返回自己。
例子:设计一个计算器Calulator:
Calulator属性和方法:
@interface Calulator : NSObject@property (nonatomic, assign) BOOL isEqule;//是否等于@property (nonatomic, assign) int result;//每次计算的结果//每次都返回自己- (Calulator *)caculator:(int (^)(int result))calulator;//每次都返回自己- (Calulator *)equle:(BOOL (^)(int result))operation;@end
实现方法:
@implementation Calulator- (Calulator *)caculator:(int (^)(int))calulator{ _result += calulator(_result); return self;}- (Calulator *)equle:(BOOL (^)(int))operation{ _isEqule = operation(_result); return self;}@end
用法:
计算 8 * 2 是否等于 16
// 8 * 2 == 16Calulator * c = [[Calulator alloc]init];// 计算 8 * 2 判断是否等于16BOOL isEqule = [[[c caculator:^int(int result) {//计算8 * 2 result += 8; result *= 2; return result; }] equle:^BOOL(int result) {//计算结果是否为16 return result == 16; }] isEqule];//最后获取该bool值NSLog(@"%d",isEqule);
打印结果1,即等于:
函数式编程让代码高度聚合,就是这么炫酷这么装逼!