Ruby 中带有“_”(下划线)的奇怪行为
Strange behavior with '_' (underscore) in Ruby
只是好奇
如果您打开 IRB 并键入 _
,您将得到 nil
作为响应:
irb(main):001:0> _
=> nil
你可以修改它的值:
irb(main):002:0> _ = 'some value'
irb(main):003:0> _
=> "some value"
但是如果你用_
创建一个新的变量,它的值会被修改:
irb(main):004:0> foo_bar = 'other value'
irb(main):005:0> _
=> "other value"
为什么?这是设计决定吗?
irb
使用 _
来引用最后计算的表达式的值。所以你会看到 _
改变了,即使你没有在前一行中使用它 :)
在irb中,_
returns前一个操作的结果。因此,在打开一个新的 irb 会话时,_
将等于 nil,因为之前没有操作
2.0.0p353 :001 > 4
=> 4
2.0.0p353 :002 > 3 + _
=> 7
只是好奇
如果您打开 IRB 并键入 _
,您将得到 nil
作为响应:
irb(main):001:0> _
=> nil
你可以修改它的值:
irb(main):002:0> _ = 'some value'
irb(main):003:0> _
=> "some value"
但是如果你用_
创建一个新的变量,它的值会被修改:
irb(main):004:0> foo_bar = 'other value'
irb(main):005:0> _
=> "other value"
为什么?这是设计决定吗?
irb
使用 _
来引用最后计算的表达式的值。所以你会看到 _
改变了,即使你没有在前一行中使用它 :)
在irb中,_
returns前一个操作的结果。因此,在打开一个新的 irb 会话时,_
将等于 nil,因为之前没有操作
2.0.0p353 :001 > 4
=> 4
2.0.0p353 :002 > 3 + _
=> 7