iOS学习笔记OSOC学习

OC-Block语法

2015-05-11  本文已影响4545人  李小六_
block 语法

block语法 -> 块语法
标准C里面没有Block, C语言的后期扩展版本, 加入了匿名函数; C++, JS, Swift等语言中, 有类似语法, 叫做闭包!

block语法和函数指针很相似

回顾, C语言中的指针函数:int(*) (int x, int y) 即: 指向两个整型参数, 一个整型返回值函数的指针!

Block函数, 没有名称的函数;
例如 int(int x, int y)
因为Block是匿名函数, block变量的存放的函数的实现, 通过block变量能直接调用函数, 没有名称的函数该如何调用呢? (有名称的话, 可以直接调用, 也可以通过函数指针来调用)

例如定义C语言的函数指针!

int sum (int x, int y) {
return x+ y;
}
// 定义函数
int (*p)(int, int) = sum;
NSLog(@"%ld", p(2, 5));

// 函数指针类型: int (*)(int, int);
// 函数指针变量: p;
// 函数指针的值: sum 

看看block语法

 block类型: int(^)(int, int)  
 block变量: block
 block值: ^(int x, int y){ 
  return x + y ;
};

定义block语法块

int (^block) (int , int) = ^(int x, int y) {
return  x + y;
}
NSLog(@"%d", block(3, 5));

效果和上边的函数指针一样! 参照起来学习方便!

block 与变量的关系

block 用户熟练了, 用处大大的!!!

上一篇下一篇

猜你喜欢

热点阅读