• iOS函数式编程


    是把操作尽量写成一系列嵌套的函数或者方法调用。

    • 函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)

    • 代表:ReactiveCocoa。

    • 用函数式编程实现,写一个加法计算器,并且加法计算器自带判断是否等于某个值.

    @interface Caculator : NSObject

     

    @property (nonatomic, assign) int          result;

    @property (nonatomic, assign) BOOL         isEqule;

     

    - (Caculator *)caculator:(int (^)(int value))block;// 内部触发block,外部执行block,并得到结果;

    - (Caculator *)equle:(BOOL (^)(int result))block;// 内部触发block,外部执行block,并得到结果;

    @end

     

    @implementation Caculator

     

    - (instancetype)init

    {

        if (self = [super init]) {

            self.result = 1;

            self.isEqule = NO;

        }

        return self;

    }

     

    - (Caculator *)caculator:(int (^)(int value))block

    {

        _result = block(_result);

        NSLog(@"%d",_result);

        return self;

    }

    - (Caculator *)equle:(BOOL (^)(int result))block

    {

        _isEqule = block(_result);

        NSLog(@"%d",_isEqule);

        return self;

    }

    // 调用

     

     Caculator *ca = [[Caculator alloc] init];

        BOOL isEqule = [[[ca caculator:^int(int value) {// 调用方法,会执行block,将结果给回去,

            value += 2;

            value *= 5;

            return value;

        }] equle:^BOOL(int result) {// 调用方法,会执行block,将结果给回去,

            return (result == 15);

        }] isEqule];// 调用getter方法,获取最终的执行结果

        

        NSLog(@"%d",isEqule);

     

  • 相关阅读:
    归类常用控件GroupBox、TabControl、Expander
    ScrollViewer控件
    捕获鼠标位置
    5、标记拓展
    如何实现文件增量同步——算法
    常用的 Nand Flash 指令如下:
    Consistent Hashing算法
    循环冗余检验 (CRC) 算法原理
    yaffs2根文件系统的构建过程
    linux内存管理之uboot第一步
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7879057.html
Copyright © 2020-2023  润新知