a) 像函数一样有定义好的参数 b) 有返回值 c) 能从定义的作用域中捕获状态(值) d) 可以修改作用域状态(值) e) 可以和统一作用域下的其它blocks共享值的变化 f) 能够在作用域(栈)被destroy后继续分享或者修改作用域
a) 全局变量,包括静态变量 b) 全局函数(并不完全算是变量) c) 局部变量和参数(来自于一个作用域) Blocks支持另外两种变量 d) __block变量。这些在block里是可以改变的,并且在copy到堆上时是被保存过上下文的。 e) Const变量。
a) 全局变量是可以访问的,包括在作用域之内的static变量 b) 传到block中的变量是可访问的 c) 对于闭包,栈上的变量(非静态)会被当成静态变量一样被捕获。这些值在block表达式产生的一刻被定格。 d) __block修饰的变量在block内仍旧是可变的。即便栈转向了堆。 e) 在block中定义的变量,和在函数中定义的变量是一样的。每一处对block的调用都会返回其中对应变量的copy。