Just curious about it.
If you open the IRB and type _
, you'll get nil
as response:
irb(main):001:0> _
=> nil
And you can modify its value:
irb(main):002:0> _ = 'some value'
irb(main):003:0> _
=> "some value"
But if you create a new variable with _
, its value is modified:
irb(main):004:0> foo_bar = 'other value'
irb(main):005:0> _
=> "other value"
Why? Is this a design decision?
irb
uses _
to refer to the value of last calculated expression. So you will see _
changed even if you don't use it in the previous line :)
Within irb, _
returns the result of the previous operation. So on opening a new irb session _
will equal nil as there was no previous operation
2.0.0p353 :001 > 4
=> 4
2.0.0p353 :002 > 3 + _
=> 7
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With