函数式编程 响应式编程

学习函数式编程对于我们理解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;

}


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 链式编程 实现一个类似于 Masonry 的链式编程,加法。 第一步 我们需要一个返回值是 Int 的方法,入参应...
    夜雨聲煩_阅读 224评论 0 0
  • 我们经常使用的开源框架 Masonry 就是使用这样的编程思想,Masonry是一个OC开发中,非常好用的自动布局...
    零距离仰望星空阅读 586评论 0 6
  • 链式编程 此前看到SnipKit中运用了很多链式编程的代码,感觉非常好用:例如: //此段就是链式编程的典型代码m...
    BlueEagleBoy阅读 1,870评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,924评论 18 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,211评论 30 472