黑马程序员-----Category,protocol和block(四)
来源:互联网 发布:mac顶部菜单栏隐藏 编辑:程序博客网 时间:2024/06/01 08:26
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
Block
1>概念
Block是用来封装一段代码,与函数不同的是Block是在程序运行过程中用来保存一段代码,运行时才确定的,不像函数在编译时就必须确定。
2>Block定义
返回值 (^Block名)(参数列表) = ^(参数列表){
//Block实现
return 返回值
};
注意
①如果Block没有参数,那么等号右边的(参数列表)可以省略。
②因为Block是数据类型所以必须加上“;”。
3>Block调用
Block不是普通代码块,必须像函数一样显示调用,才能执行Block;调用方法跟函数指针一样
4>举例
①无参数的Block
int main()
{
//Block定义
void(^MyBlock)() = ^{
NSlog(@"-----------");
}
//Block调用
MyBlock();
return 0;
}
②有参数的Block
int main()
{
int a;
//Block定义
int (^sum)(int,int) = ^(int a, int b){
return a + b;
}
//Block调用
a = sum(10,20);
return 0;
}
5>函数指针与Block的比较
定义
①Block: 返回值 (^Block名)(参数列表) = ^(参数列表){//Block体实现};
eg:int (^sum)(int, int) = ^(int a, int b){//Block体实现};
②函数指针:返回值 (*指针名)(参数列表);
eg:int (*p)(int, int);
p = sum;
调用
①Block: Block名(参数列表);
eg:sum(10,20);
②函数指针:指针名(参数列表);
p(10,20);
6>typedef使用
①Block
typedef int (^SumBlock)(int, int);
SumBlock myblock = ^(参数列表){//Block体实现};
②函数指针
typedef int (*pSum)(int, int);
pSum p = sum;
- 黑马程序员-----Category,protocol和block(四)
- 黑马程序员-----Category,protocol和block(一)
- 黑马程序员-----Category,protocol和block(二)
- 黑马程序员-----Category,protocol和block(三)
- 黑马程序员-block和protocol
- 黑马程序员——OC基础:block和Protocol及Category
- 黑马程序员---OC基础---Block、分类Category、协议protocol
- 黑马程序员 block、protocol
- 黑马程序员(OC特有语法-block和-Protocol)
- 黑马程序员员—OC(block和protocol)
- 黑马程序员------OC block(代码块)和protocol(协议)
- 黑马程序员------OC基础-----block和protocol
- 【黑马程序员】-oc中的block和protocol
- 黑马程序员-OC-block和protocol
- 黑马程序员 OC基础: Block 和 Protocol
- 黑马程序员——OC基础学习(五)---分类(Category),代码块Block和protocol代理设计模式
- 黑马程序员——OC的Category和Protocol
- 黑马程序员——OC热身——Category、Protocol、Block、常用结构体
- Echarts使用心得总结(二)
- Effective C# Item17:尽量减少装箱和拆箱
- HDOJ 题目1465 不容易系列一 (全错排)
- 绝对值排序(2020)
- 中水处理设备:生活污水中水回用设备特点解析
- 黑马程序员-----Category,protocol和block(四)
- Construct Binary Tree from Preorder and Inorder Traversal
- Linux 线程实现机制分析
- C++中的this 指针的使用
- Effective C# Item18:实现标准Dispose模式
- 内核数据结构--2014/07/25 9:04
- JasperReports是一个开源的java报表制作引擎
- 【Android性能优化】JAVA内存管理
- activity-alias的使用