在函数中声明block变量的形式及相关类型的实例源码



在函数中声明block变量的形式及相关类型的实例源码,首先需要了解的是Block是一个代码块,是一个变量的形式存在的。

二、构成了解

我们需要在函数中声明block,因为是变量的形式,而且存在静态变量形式

类型1:

NSString* (^blocks)(NSString*)= ^(NSString *str)

{

//NSLog(@”this is :%@”,str);

return str;

};

 

返回值类型是字符串,如同函数一样,返回值类型写在最前面

^blocks是声明一个代码块,名字叫做blocks

后面括号跟的是参数的类型,如果没有参数返回void,如果有多个参数类型,那么逗号分隔列出

等于号后面的是参数名列表。

因为写的是一个有返回值的block,所以需要return一个与返回值类型相同类型的值,这里返回的是参数字符串

类型2:

int (^david)(int)= ^(int num)

{

return num*5;

};


 

这里的返回值类型是一个int,代码块名字叫做david,参数是一个int类型的变量

等于号后面是参数列表,执行的语句是return num *5这句话。

 

因为如上的两个例子都是有返回值的类型,那么我在调用的时候可以直接使用。

例如:

 

NSLog(@”this is block:%@”,blocks(@”hello”));

NSLog(@”this is block:%d”,blocks(5));

 

 

类型3:

void (^david)(void)= ^(void)

{

NSLog(@”I am a block code!”);

};

 

这里只是简单的执行了一句话,调用方法就是直接打印或者当作变量直接使用。