函数式编程 响应式编程

学习函数式编程对于我们理解Masonry && Snapkit有很大的帮助,函数式编程(链式编程)。下面文章也是参考前辈们的知识。

Masonry,比如make.centerY.equalTo(self.view).offset(100);

这个“.”语法就是函数式编程(链式编程)的思想。


函数式编程总结:

如果想再去调用别的方法,那么就需要返回一个对象;

如果想用()去执行,那么需要返回一个block;

如果想让返回的block再调用对象的方法,那么这个block就需要返回一个对象(即返回值为一个对象的block)



比如一个Person类,最终实现这样一个目标person.runBlock().studyBlock().runBlock();

person.studyBlock().studyBlock().runBlock();

下面是实现的过程:

1.首先实现[[person run] study];

在Person类中增加

- (void)run;

- (void)study;

具体实现:

- (Person*)run1 {

NSLog(@"run");

return[[Personalloc] init];

}

- (Person*)study1{

NSLog(@"study");

return[[Personalloc]init];

}

2.实现 person.runBlock().studyBlock().runBlock();

- (Person *(^)())runBlock;

- (Person *(^)())studyBlock;

具体实现:

- (Person *(^)())runBlock

{

Person *(^block)() = ^(){

NSLog(@"run");

return self;

};

return block;

}


响应式编程,目标就是,如果一个数值发生变化,和它相关的数值会同时发生变化

你可能感兴趣的:(函数式编程 响应式编程)