上面是两个函数指针,最终给予赋值;
计算等于的东西,必须要跟类型匹配上;
下面的测试即可执行了这个函数;结果也验证了;
好吧,这么理解:
如果^在括号里面,那么与^同在括号内的英文字符,代表这是一个”;函数指针”;的概念,类似快速引用;例如:char(^平方)(int);前面是返回值类型char、后面是参数int类型;
如果^在括号外,那么就是一个具体的块的实现函数的抬头符。之后的内容,无非是参数,大括号,实现内容,可参考平方=^ (int){返回*;};
广场(5)即是25;
总之,块基本就是这样;省去了你定义一个不必要的函数,然后再调用,烦死了,还要考虑备份现场,因为块是实时运算,运算的数据全部重新拷贝一份;你可以理解为新了一个程序在沙盒里计算,怎么着都不会影响;当然了,更复杂的有__block;唉。复杂的结果,就是代码可读性差;
注意,块是一个称呼;不是关键字;^才是关键符号;
我个人觉得,在代码里用单块词作为块的”;函数指针”,的,都TMD脑子有病;这不故意混淆视听么?比如,你一个用来解析json的块,你丫干脆用JsonBlock,何必故意弄个这么绕口的 ?
那么块适合干啥?
我现在思维禁锢,因为之前没有^,我们也活得好好的,现在唯一想出来的好处,就是偷懒,随取随用,这要这个函数没有复用的必要的,那就放心大胆的用吧。省了头文件定义,冗余的格式。