黑马程序员技术交流社区

标题: block语法分析 [打印本页]

作者: 蒙圈的小明    时间: 2016-3-23 12:43
标题: block语法分析
         int mul=7;// 定义一个常量,这个地方学完c的基本都很OK了,这里不再多说
         //(^)脱字符 作用是把后面的变量声明为一个块对象

       //一个无参无返回block类型 的表达是这样的  void (^  )();这个就相当于 int ,只是名字写在脱字符后面被修饰而已 void(^myblock)()

         //一个完整的形式是  返回值类型 (脱字符 块对象的名字)(形参类型)=^(形参类型 形参名){ 代码块; return 返回值;   };

          //下面是一个返回值是整型,一个整型形参的名为myblock的代码块 ,调用就是 块对象的名字(实参); 最后打印输出     
        int (^myblock)(int)=^(int num){    //如果是误返回值就可以把int 换为void此处可以类比函数
            NSLog(@"代码块");
            return num * mul;
        };
        int result=myblock(6);//有返回值需要接收,返回什么类型用什么类型接收,调用方法可以类比函数调用
        NSLog(@"result=%d",result);
        //写一个无参数无返回值得可以类比下
      void (^myblock)(void)=^(void){        
            NSLog(@"我是无参无返回");
        };
        myblock();
                  //当没有参数时候,括号中的void 可以省略,等号右边的小括号也可以省略
         //上面的无参无返回变形后是:
         void (^myblock)(void)=^{
                NSLog(@"我是无参无返回");
                };
             myblock();
          //最后说明一下起别名的问题  
         //还是以无参无返回为例  
         block的类型是 void(^ )()   
        起别名时候肯定是给类型起别名
typedef void(^ )()      //那么名字写在哪里呢,看下面
typedef void(^ haha)()  //这个haha就是block类型的别名  ,当然自己起别这么逗比,,起个有意义的,c里面应该都讲了,不再赘述  
          //OK这是昨天学习的一个成果,在此发帖复习下,如果有一个同学学了那就达到了我的目的  










作者: songxuefeng    时间: 2016-3-24 01:06
很不错,谢谢总结.
作者: 彼岸花开    时间: 2016-3-24 01:19
总结得不错,赞
作者: 蒙圈的小明    时间: 2016-3-24 07:47
彼岸花开 发表于 2016-3-24 01:19
总结得不错,赞

刚开始学习,要成为一名合格的程序员~~
作者: 蒙圈的小明    时间: 2016-3-24 07:48
songxuefeng 发表于 2016-3-24 01:06
很不错,谢谢总结.

刚开始学习嘛,感觉这个是个重要的地方




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2