// block语法(可定义在任意位置)
//1.定义
int (^Sum)(int, int) = ^(int a, int b){return a+b;};
//2.使用
NSLog(@"sum = %d", Sum(10, 20));
//3.将block定义成类型
typedef int(^myBlock)(int, int);
//4.定义block类型的变量
myBlock sub = ^(int a, int b){return a-b;};
myBlock mul = ^(int a, int b){return a*b;};
NSLog(@"sub=%d", sub(10, 20));
NSLog(@"mul = %d", mul(10, 20));
//5.block和局部变量的关系
//5.1 在block中可以访问局部变量
int a = 20;
int b = 10;
void(^myBlock2)() = ^(){
NSLog(@"a+b = %d", a+b);
};
myBlock2();
//5.2 在block中不能修改局部变量的值
void (^myBlock3)() = ^(){
//a = 30; //error:普通变量不能修改
};
//5.3 在block中可以修改用__block修饰的变量的值
__block int c = 30;
void (^myBlock4)() = ^(){
c = 40;
NSLog(@"c = %d", c);
};
myBlock4();
block语法小记
最新推荐文章于 2022-05-10 09:08:59 发布