我在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)
在第一种情况下,这些额外条目是否有某些原因?这是红宝石中的错误吗?
归档时间: |
|
查看次数: |
104 次 |
最近记录: |