zoukankan      html  css  js  c++  java
  • 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);

     

  • 相关阅读:
    02-09 对数线性回归(波士顿房价预测)
    02-02 感知机原始形式(鸢尾花分类)
    02-19 k近邻算法(鸢尾花分类)
    02-21 决策树ID3算法
    A-02 梯度下降法
    09-01 Tensorflow1基本使用
    02-34 非线性支持向量机(鸢尾花分类)+自定义数据分类
    [Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)
    Eclipse+PyDev 安装和配置(转)
    [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容(转)
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7879057.html
Copyright © 2011-2022 走看看