Block练习

#import <Foundation/Foundation.h>
void goToWorkDay1();
void goToWorkDay2();
typedef int (^numBlock)(int,int);
typedef void (^logBlock)();
typedef NSString * (^srtringBlock)(NSString *);
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        numBlock sum = ^(int a,int b){
            return a + b;
        };
        NSLog(@"sum = %i",sum(20,30));
        
        numBlock sub = ^(int a,int b){
            return a-b;
        };
        NSLog(@"sub = %i",sub(30,20));
        goToWorkDay1();
        goToWorkDay2();
        
        srtringBlock str = ^(NSString *name){
            name = name;
            NSLog(@"name = %@",name);
            return name;
        };
        str(@"lxc");
        
        logBlock log = ^{
            NSLog(@"log");
        };
        log();
    }
    return 0;
}
void goToWork(void (^workBlock)())
{
    NSLog(@"eat");
    workBlock();
    NSLog(@"sleep");
}
void goToWorkDay1()
{
    goToWork(^{
        NSLog(@"copy code");
    });
}
void goToWorkDay2()
{
    goToWork(^{
        NSLog(@"look code");
    });
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容