我刚开始学习 Ruby。我输入了 example :

x = 10
5.times do |y; x|
  x = y
  puts "x inside the block: #{x}"
end
puts "x outside the block: #{x}"

我有一个错误:



请给我解释一下是什么意思?根据我对本章的理解,此代码应该有效。

最佳答案

那是 new 1.9 construct ,您使用的是 1.8。

它也适用于 lambdas(包括 stabbed),这很好:

> x = 42
> love_me = ->(y; x) do
*   x = y
*   puts "x inside the block: #{x}"
* end
> 2.times &love_me
x inside the block: 0
x inside the block: 1
> puts "x outside the block: #{x}"
x outside the block: 42

关于Ruby:块参数中出现意外的分号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8963520/

10-14 06:56