最近学习的基础只是希望对大家有用
/*
函数:
void test(){
/////
}
函数 代码块类型
无参无返回值 无参无返回值的代码块
有参无返回值 有参无返回值的代码块
有参有返回值 有参有返回值的代码块
无参有返回值 无参有返回值的代码块
*/
#import <Foundation/Foundation.h>
//
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1,无参无返回值的代码块的使用
// 使用block的步骤
// 1)定义block类型的变量
// 格式:void (^block变量名)(参数);
// 2)给变量赋值代码块
// 格式: block变量名 = ^(){ }; //注意此处的分号,必须得有
// 3)使用block变量(执行这个代码块),格式: block变量名();
void (^test)(); //定义了一个block的变量
test = ^(){
NSLog(@"我是inblock test");
};
//给test重新赋值
//如果没有参数,小括号可以省略
test = ^{
int m = 10;
int s = m+1000;
NSLog(@"xxxxxx %d",s);
};
//执行代码块
test();
//2,有参数没有返回值的block的使用
//格式: void (^block变量名)(参数列表) = ^(形参列表){ };
// void test2(int a,int b){
//
// NSLog(@"a+b = %d",a+b);
// }
//定义block变量,变量名test2,没有返回值,有两个参数,并且都是int类型
void (^test2)(int a,int b) = ^(int a,int b){
NSLog(@"a+b = %d",a+b);
};
//执行block
test2(10,28);
//3,有参数\有返回值的block的使用
//格式: 返回值类型(^block变量名)(参数列表) = ^(形参列表){ };
// int max(int x,int y){
//
// return x>y?x:y;
// }
//定义了一个有返回值,有两个整形参数的block类型的变量,名称为max
int (^max)(int x,int y) = ^(int x,int y){
return x>y?x:y;
};
//执行block
int m = max(42,23);
NSLog(@"m = %d",m);
}
return 0;
}
|
|