#import <Foundation/Foundation.h>
typedef int (^BlockProduct) (int, int); // 乘积
typedef int (^BlockQuotient) (int, int); // 商
int main()
{
// 局部变量
int nm = 99;
// 使用__block标注变量,这样就可以让Block操作了
__block int num = 99;
/**
定义block变量:
void 返回值
(^myBlock) 名称
() 形参
**/
//void (^myBlock)() = ^(){
void (^myBlock)() = ^{ // 没有参数,可以省略后一对()
NSLog(@"Block代码块");
NSLog(@"和Groovy里的一样");
/** 默认局部变量是不能在Block代码块中修改的,除非用__block做了标注 **/
num = 345;
}; // 必须用;结尾
myBlock(); // 调用代码块
NSLog(@"%d", num);
/**
int 返回值类型为int
(int, int) 有两个参数,都是int类型
**/
int (^blockSum)(int, int) = ^(int a, int b){
int sum = a + b;
NSLog(@"和:%d", sum);
return sum;
};
blockSum(345,2);
BlockProduct blockPro = ^(int a, int b){
int pro = a * b;
NSLog(@"积:%d", pro);
return pro;
};
blockPro(432, 3);
BlockQuotient blockQuo;
blockQuo = ^(int a, int b){
int quo = a / b;
NSLog(@"商:%d", quo);
return quo;
};
blockQuo(200, 3);
return 0;
}
- end