OC 30 day
int,double,float,char ...
既然是一个数据类型那麽就可以声明这个数据类型的变量。所以block完全也可以声明一个block类型的变量。
不同类型的变量中可以储存不同类型的数据。
那麽block类型的变量中可以储存什麽样的数据呢?
声明一个block变量,反回值是void,参数是一个int类型的。
这个时候,这个block变量中就只能储存无反回值并且有一个int参数的代码>段。
反回值类型 (^block变量的名称)(参数列表);
void (^myBlock1)();
//表示声明了一个block类型的变量叫做myBlock1
// 这个变量只能储存没有反回值没有参数的代码段。
声明block变量的时候要指定这个block变量可以储存的代码段的反回值和参数描述,一但指定,这个block变量就只能储存这样的代码段了,其他格式的代码段无法储存。
^反回值类型(参数列表){
代码段;
};
^void(){
NSLog(@"喵呜");
};
这个时候,我们就可以将这段代码使用赋值符号储存到无反回值无参数要求的block变量中,当然也可以再声明block变量同时使用符合要求的代码段初始化。
void (^myBlock1)();
myBlock1 = ^void(){
NSLog(@"喵呜");
};
^int(){
int num1 = 10 + 20;
return num1;
};
我们就可以将这段代码复职给符合要求的block变量。
int (^myblock2)() = ^int(){
int num1 = 10 + 20;
return num1;
};
^int(^myblock3)(int num1,int num2){
int num3 = num1 + num2;
return num3;
};
所以我们可以将这段代码赋值给符合要求的block变量。
^int(^myblock3)(int num1,int num2) = ^int(int num1,int num2){
int num3 = num1 + num2;
return num3;
};
赋值给block变量的代码必须要符合block变量的要求。否则会报错。
语法格式:
block变量名();
有参数就传参数,有反回值就接。
<<: CSS - Tailwind CSS 阿哩阿杂的设定
>>: 在 header 带 token 的 Guzzle Http Request 模板
前言: 虽然kotlin 为android 官方首选语言,新专案大都也是用kotlin ,但是免不了...
俗话说得好:「工欲善其事,必先利其器」。 没有一个好用的文字编辑器,要如何轻松愉悦的写程序呢? 安...
今年的疫情蛮严重的,希望大家都过得安好, 希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标...
前言 在这系列文章中,我会使用Azure来运行所有的程序,如何使用Azure的文章在这里 这边则是使...