定义block变量
int (^myBlock)(int ,int );
普通代码块
{ do something...代码块中的成员变量作用域为代码块结束时 }
block封装代码块
block封装了一段代码,可以在任何时候调用。很像函数,可以保存代码,有参数返回值。
^(){ }; ^{ }; ^(int a ,int b){ };
定义+封装如下,block的标志:^
void (^blockName)()=^{//如果block没有形参可以省略^() do something... };
利用block调用block内部代码
blockName();
带参数返回值的block
int (^blockName)(int a,int b)=^(int a ,int b){ do something... return a+b; }; int c = blockName(1,2);
类似于C中的指针函数
int sum(int a ,int b) { return a+b; } int (*p)(int, int)=sum(); int c = p(1+2);
block成员变量作用域
int a = 1; __block int b = 2; void (^blockName)(); blockName = ^{ //1、block内部可以访问外部的变量 //2、默认情况下block不能修改外部的局部变量 如 a= 2; //3、如要修改外部的变量需要加上__block(两个下划线) 如 b = 1; }; blockName();
typedef定义block
//typedef定义函数指针 typedef int (*P)(int, int); int sum(int a ,int b) { return a+b; } P p1 = sum; P p2 = sum;
同样block中
typedef (^BlockName)(int, int);//定义类型,以后可以用BlockName这种类型来定义block变量 BlockName sumBlock; sumBlock = ^(int a ,int b){ return a + b; }; BlockName minusBlock = ^(int a ,int b){ return a - b; };
相关推荐
内含本文章代码和PDF笔记,要是感觉很不错的话,请赞赏本作者。另外有其他需要的资源可以私聊我,我有的都会给。
day3.基本数据类型-序列.md
day07_15_ArrayList集合存储基本数据类型
day05 数据类型.md
day03 数据类型和文件.md
199734423707524day2变量与基础数据类型.md
day01数据类型和运算符,数据属性,js 的引用,打印语句输出,如何检测数据类型,变量声明 ,运算符
day02_数据类型转换、运算符、方法入门.zip
黑马程序员-JavaEE 57期-day15-房源数据抓取以及实现房源搜索
day02 【数据类型转换、运算符、方法入门】.pdf
day2_变量与基本数据类型.md
王道基础C语言教学视频,快速掌握C语言编写技能,视频非常基础,之前参加王道训练营的时候学习的资料,希望能帮助一些吃语言小白学习。
王道基础C语言教学视频,快速掌握C语言编写技能,视频非常基础,之前参加王道训练营的时候学习的资料,希望能帮助一些吃语言小白学习。
day01-HelloWorld+基本数据类型.txt
day001_Eclipse&基础语法&数据类型&常量&变量.doc
超全面javaweb教程28天day2-_16_js的数据类型和变量声明
数据类型的转换,进制的介绍,程序的结构,分支结构的语句
1-1_JavaScript介绍及使用、数据类型及转换_Day01_AM.mp4
进阶day5 - 作业数据.rar