Ruby:块参数中出现意外的分号

时间:2012-01-22 18:33:36

标签: ruby

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

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

我有一个错误:

  

hello.rb:3:语法错误,意外';',期待'|'   5次做什么X |

请向我解释一下这是什么意思?正如我所理解的那样,这段代码应该有效。

1 个答案:

答案 0 :(得分:7)

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


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

> 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