zoukankan      html  css  js  c++  java
  • 黑马程序员——Block数据类型

        Block数据类型,又被称为代码段。因为它可以封装一段代码。苹果官方建议多用block。因为在多线程控制、异步任务,集合遍历、集合排序、动画转场等方面用的很多。

    Block的特点:

                   1.Block 用于封装一段代码,并可以在任何时候执行。

                   2.Block 可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。

    Block的定义:

                 例:int(^sum)(int ,int) = ^(int a,int b){

                         return a+b;

                       }

    从形势上看和指向函数的指针比较像

                  例:int(*p)(int,int) = sum;   //指针p 指向sum函数

    他们之间也是有共同点的:

                   1.都可以保存代码;2.都有返回值;3.都有形参;4.调用方式 一样。

    用typedef 定义block类型:

       typedef  int(^MyBlock)(int,int);          //重新定义 后就可以用MyBlock定义新变量了。

     MyBlock   sumBlock=^(int a,int b ){

                     return a+b;

                    };

    注意点:

            在默认的情况下block内部可以访问外部的局部变量,不能修改。

             给外部的局部变量加上__block(block前有两个_连在一块)关键字后,这个局部变量就可以在block内部修改了。

    例:  __block int sum = 10;       

          int (^MyBlock)(int)=^(int num){

            sum++;

    return num+sum;

    };

  • 相关阅读:
    纯css改变下拉列表select框的默认样式
    jquery 购物车
    如何统计页面标签使用次数?
    uni-app—从安装到卸载
    详解Vue 方法与事件处理器
    LoadRunner
    Python-函数
    Python-函数
    python-列表
    python-循环
  • 原文地址:https://www.cnblogs.com/newbee010/p/4348595.html
Copyright © 2011-2022 走看看