具有块本地参数的多个内核#local_variables条目

rya*_*ntm 10 ruby

我在Arch Linux上使用这个版本的Ruby.我还尝试了ruby 1.9中的第一个代码片段,它具有相同的结果.

ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

uname -a
Linux ryantm0j132 3.12.7-2-ARCH #1 SMP PREEMPT Sun Jan 12 13:09:09 CET 2014 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

下面这三个片段是单独的程序.

当我使用阻塞变量的块局部变量时,local_variables数组包含3个条目:

a = 1
puts local_variables.inspect #=> [:a]
proc { |;a|
  puts local_variables.inspect #=> [:a,:a,:a]
}.call
Run Code Online (Sandbox Code Playgroud)

如果我不影,那么它包含1个条目:

puts local_variables.inspect #=> []
proc { |;b|
  puts local_variables.inspect #=> [:b]
}.call
Run Code Online (Sandbox Code Playgroud)

块局部变量的另一个例子没有遮蔽任何东西:

a = 1
puts local_variables.inspect #=> [:a]
proc { |;b|
  puts local_variables.inspect #=> [:b,:a]
}.call
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,这些额外条目是否有某些原因?这是红宝石中的错误吗?

rya*_*ntm 0

这已在我报告的 Ruby 问题跟踪器页面上被确认为一个错误。