第十一章 块(上)

  1. do~end或者{}之间的部分就是块,其中||包含起来的就是块变量,如下例子i就是块变量,块被执行了5次

(2)

(3)

(4)

(5)

(6)#块的另外一种用法是可以确保后处理被执行,这样可以防止类似忘记关闭文件等错误的发生。
					

(7)

(8)

等价于

(9)

(10)

(11)给方法传递块参数的用法

(12)块变量的使用实例

(13)上例的分析解释

块变量比较多时,多出来的块变量值为 nil,而块变量不足时,则不能接收参数值。

最后的通过 |*a| 接收的情况是将所有块变量整合为一个数组来接收。这与定义方法时接收可变参数的情况非常相似。

注意执行过程是:yield(),yield(1),yield(1,2,3)这三个去执行第一个do语句块,得到nil,1,1

然后这三个yield再去执行第二个do语句块,执行完再去执行第三个do语句块。

(14)

 

posted @ 2016-02-08 23:16  SixEvilDragon  阅读(120)  评论(0)    收藏  举报