学习函数式编程对于我们理解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;
}
响应式编程,目标就是,如果一个数值发生变化,和它相关的数值会同时发生变化
网友评论