Ответ 1
irb
использует _
для обозначения значения последнего вычисленного выражения. Таким образом, вы увидите, что _
изменено, даже если вы не используете его в предыдущей строке:)
Просто интересно.
Если вы откроете 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 _
возвращает результат предыдущей операции. Таким образом, при открытии новой сессии irb _
будет равно нулю, поскольку предыдущей операции не было.
2.0.0p353 :001 > 4
=> 4
2.0.0p353 :002 > 3 + _
=> 7