|
|
1
11
首先,
通常情况下,您不能执行所需的操作,块在创建时是绑定的,在块内您可以看到此时定义的局部变量;执行所需操作的最简单方法(而不是通常使用块的方法)是:
但这只是一个副作用,因为
你会注意到它有不同的作用。 更神奇的是:
这是一种工作,但如果你把它移开,它就会断裂。
摘要:不能从块访问局部变量,只能访问定义块的局部变量和块的返回值。 即使这样也不行:
因为
|
|
|
2
3
不,块不能影响调用它的地方的局部变量。
红宝石中的块是
闭包
这意味着它们在创建时捕获周围的作用域。创建块时可见的变量就是它看到的变量。如果有
|
|
|
3
2
你可以做你想做的事情,只要稍微详细一点:
您可以创建如下方法
|
|
|
4
-1
印刷品
收益率值是块的值。 您还可以将参数传递给yield,然后块可以使用param(块开头的另一个)访问该参数。 另外,检查程序。
印刷品
印刷品
印刷品
|