码迷,mamicode.com
首页 > 其他好文 > 详细

代码块(block)之函数体(二)

时间:2016-02-15 12:04:07      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

 

代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。

 

 //block作为函数的参数
//函数返回值类型 函数名(block的声明格式)
void fun(int (^block)(int a,int b)){
    int  sum=block(5,6);
    NSLog(@"%d",sum);
}
void fun1(NSString *(^myBlock)(NSString *s),NSString *s1){
   
    NSLog(@"%@",myBlock(s1));
}
int main(int argc, const char * argv[]) {
    @autoreleasepool {
     
        //当一个block作为函数的参数是,其返回值类型、形参个数及类型要与函数形参格式保持一致

        int (^myBlock)(int a,int b)=^(int a,int b){
            NSLog(@"%d,%d",a,b);
            return  a*b;
        };
        //函数形参是block,调用时,直接传block的名字就行
        fun(myBlock);
        //调用的另一种方式:内联
        //内联block格式:^返回值类型 (形参列表){}

        fun(^int(int a, int b) {
            return  a-b;
        });

    fun1(^NSString *(NSString *s) {
                    return s;
                }, @"123");
        
        
    }
    return 0;
}

 

代码块(block)之函数体(二)

标签:

原文地址:http://www.cnblogs.com/wyhwyh2114/p/4935516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!