首页 > 其他 > 详细

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

时间:2016-02-15 12:02:08      阅读:268      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!