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

block和函数的区别
- 相同点:block和函数都是
先创建,再调用,参数都是放在block名或函数名之后 - 不同点:函数是在编译的时候就被保存了,block是运行的时候才去定义