美文网首页
函数式编程/链式编程思想

函数式编程/链式编程思想

作者: smile_frank | 来源:发表于2019-03-12 17:40 被阅读0次

传统的函数调用方式

    Fouction *aFouction = [[Fouction alloc]init];
    [aFouction dosomething];
    [aFouction working];

Fouction.h

/**
 传统写法
 */
-(void)dosomething;
-(void)working;

Fouction.m

-(void)dosomething{
    NSLog(@"dosomething ");
}
-(void)working{
    NSLog(@"working ");
}

链式编程调用

Fouction *aFouction = [[Fouction alloc]init];
[[[aFouction dosomething2] working2] dosomething2];

Fouction.h

/**
 链式编程方法
 @return 返回当前对象
 */
-(Fouction *)dosomething2;
-(Fouction *)working2;

Fouction.m

-(Fouction *)dosomething2{
    
    //执行操作办法
    NSLog(@"dosomething ");
    return  self;
}

-(Fouction *)working2{
    
    //执行操作办法
    NSLog(@"working");
    return  self;
}

函数式编程调用

  Fouction *aFouction = [[Fouction alloc]init];
  aFouction.dosomething4(@"工作").working4(@"休息");

Fouction.h

/**
 函数式编程 无参数
 */

-(Fouction *(^)(void))dosomething3;
-(Fouction *(^)(void))working3;

/**
  函数式编程  有参数
 */
-(Fouction *(^)(NSString *str))dosomething4;
-(Fouction *(^)(NSString * str))working4;

Fouction.m

-(Fouction *(^)(void))dosomething3{
    Fouction *(^runBlock)(void) = ^ () {
        NSLog(@"执行了不带参数的函数方法");
        return self;
    };
    return runBlock;
    
 //   改进写法
//    return ^(){
//        NSLog(@"Block Run2");
//        return self;
//    };
}
-(Fouction *(^)(void))working3 {
    return ^() {
        NSLog(@"执行了无参数的方法");
        return self;
    };
}

-(Fouction *(^)(NSString *))working4 {
    Fouction *(^myBlock)(NSString *str) = ^(NSString *str) {
         NSLog(@"执行了传值过来的参数方法--%@",str);
        return self;
    };
    return myBlock;

//    return ^(NSString *str) {
//        NSLog(@"执行了传值过来的参数方法--%@",str);
//        return self;
//    };
}

-(Fouction *(^)(NSString *))dosomething4 {
    return ^(NSString *str) {
        NSLog(@"执行了传值过来的参数方法--%@",str);
        return self;
    };
}

源码git地址:https://gitee.com/WangBaofeng/hanshushibiancheng.git

相关文章

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • iOS-链式编程

    函数式编程------->链式编程 函数式编程: 调用方式 我们最终目的是将函数式编程转换为链式编程:首先将调用方...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • RAC学习详解

    Block开发基础知识 链式编程思想简介 响应式编程思想简介 函数式编程思想简介 参考资料 iOS 关于MVC和M...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • iOS链式编程及函数式编程

    提到链式编程和函数式编程,最典型的代表是Masonry 比较完美的实现了函数式编程和链式编程。例如 ``` [vi...

  • solozyx

    1.链式编程思想 2.函数式编程思想 3.Instruments工具Allocations分析应用内存分配Leak...

  • 聊一聊编程思想

    说的编程思想,我们很多人大概都听过什么函数式编程、链式编程、响应式编程这三种编程思想,可能有些人不太清楚。之前我也...

  • iOS的block与编程思想(一)

    本文承接自上一篇《iOS的block与链式编程思想》 函数式编程 首先我们需要明白什么是函数式编程么?先说一点比较...

网友评论

      本文标题:函数式编程/链式编程思想

      本文链接:https://www.haomeiwen.com/subject/xbbnpqtx.html