YunsChou

既然选择了远方,便只顾风雨兼程

一名iOS开发者


欢迎你的访问

block和C语言函数对比

目的

通过对比block和C语言函数,理解block是函数指针的概念

DEMO点我

何为block

  1. block就是函数指针,可以将函数当做变量、参数来传递
  2. block是一个OC对象,它的功能是预先保存代码片段,并在需要的时候执行
  3. block的出现主要是用来弥补OC中没有(lambda,闭包或者说匿名函数)的语言特性,为函数式编程提供了可能(通俗的讲,就是弥补OC中没有:将一个函数作为参数和变量来使用,这种语言特性)
  4. 在下面的截图中,int (^minBlock)(int a, int b)是一个block,但也可以理解为:将名字叫做minBlock的函数,保存在一个指针中,这个函数可以当做OC的参数和变量来使用

img

block和函数的区别

  1. 相同点:block和函数都是先创建,再调用,参数都是放在block名函数名之后
  2. 不同点:函数是在编译的时候就被保存了,block是运行的时候才去定义
最近的文章

OC函数式、链式、响应式编程

目的 理解函数式调用 理解链式调用 函数式和链式调用区别 理解响应式编程DEMO点我建议理解链式调用前,先理解函数式调用函数式到链式//声明@interface Animal : NSObject- (Animal *)run;- (Animal *)jump;- (Animal *)say:(NSString *)words;@end//实现@implementation Animal- (Animal *)run{ NSLog(@"run -- "); return...…

code继续阅读