用block简单的玩一下函数式编程和响应链式编程

先给大家看一下很熟悉的一段代码,大家刚接触时有没有好奇这种调用方式,未知的东西总是diaodiao的.

[redView mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.top.equalTo(@20);

}];

       对于这种mas_makeConstraints这种将block作为方法的返回值可以称之为是一种编程思想---函数式. 那么接下来我们就实现make.的这种调用方式,说白了.语法就是get和set方法.


创建一个person的类,使用block作为方法的返回值

- (void(^)(intm))run{

return^(intm){

NSLog(@"我特么跑了 %d米", m);

returnself;

};

Person*p = [Personnew];

//1.

//void(^block)(void) = p.run;

//2.

//block();

p.run(20);//这行代码相当于是1加2

接下来这种make.left.top.这种方式我们可以称之为链式编程思想------方法的最终返回的是方法的调用者


- (Person*(^)(intm))run{

return^(intm){

NSLog(@"我特么跑了 %d米", m);

returnself;

};

}

你可能感兴趣的:(用block简单的玩一下函数式编程和响应链式编程)