函数式编程(Functional Programming),
函数式编程强调的函数:1、不依赖外部状态;2、不改变外部状态。
函数式编程可解决线程安全问题,每一个函数都是线程安全的。
时间状态:变量一旦有了状态,它就有可能随着时间而发生变化,时间是最不可预知的因素。
空间状态:如果把一个线程看成一个独立的空间,在程序的世界当中,空间会产生交叉重叠。一个变量如果可以被两个线程同时访问,它的值如果可以在两个空间发生变化,这个变量同样变得很危险
高阶函数:参数为函数或返回值为函数的函数;
实现一个计算器:
#import <Foundation/Foundation.h> @interface SumManager : NSObject @property (nonatomic, assign) int result; - (instancetype)manger:(int(^)(int result))sumBlock; @end @implementation SumManager - (instancetype)manger:(int (^)(int))sumBlock { _result = sumBlock(_result); return self; } @end
SumManager *mgr = [[SumManager alloc] init]; int result1 = [mgr manger:^int(int result) { result += 10; result *= 3; return result; }].result; NSLog(@"结果:%d",result1);