用Block写一个简单的链式加减法

2020-04-13  本文已影响0人  图图cvc

Block简单介绍

  1. 什么是Block:带有自动变量(局部变量)的匿名函数
    匿名函数:没有名称的函数。
    自动变量:局部变量、函数参数。
  2. 写法


    646335-a0db1717e9df4cec.png
    • returnType表示返回的对象/关键字等(可以是void,并省略)
    • blockName表示block的名称
    • parameterTypes表示参数的类型(可以是void,并省略)
    • parameters表示参数名称

简单链式

#import "TTBlockController.h"

@interface TTBlockController ()

@property (nonatomic, assign) float num;

- (TTBlockController *(^)(float))add;
- (TTBlockController *(^)(float))minus;
- (float)calculateResult;

@end

@implementation TTBlockController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
    [self blockTest];
}

- (TTBlockController *(^)(float))add {
    TTBlockController *(^result)(float) = ^(float value) {
        self.num += value;
        return self;
    };
    return result;
}

- (TTBlockController *(^)(float))minus {
    return ^(float value) {
        self.num -= value;
        return self;
    };
}

- (float)calculateResult {
    return self.num;
}

- (void)blockTest {
    float result = self.add(2).add(3).minus(1).calculateResult;
    NSLog(@"计算结果-%f", result);
}

@end
上一篇 下一篇

猜你喜欢

热点阅读