A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 佩玉鸣 中级黑马   /  2015-3-24 14:55  /  1297 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

block在其他编程语言中叫匿名函数或lambda。,block类似函数指针,封装一段操作代码,不但能像函数一样直接调用,还能像变量一样赋值给其他变量。

block最NB之处在于词法闭包,简单来说,你在一个方法,比如叫print:中定义了一个block,那么这个block中的代码和print:方法中的定义的其他局部变量一起形成了一个封闭的环境(闭包),block中可以直接访问print:方法的局部变量。但如果你定义一个新函数来实现block中的操作代码,然后在print:方法中调用它,那么在新函数中是无法直接访问print:方法中的局部变量的,你必须把局部变量当作参数传递给新函数。显然,这种情况下用block就方便多了

1 个回复

倒序浏览
本帖最后由 fantacyleo 于 2015-3-24 18:24 编辑

看了这个帖子我都不知道说什么好了,这原封不动是我近1年前的一条回复:L
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马