Просто интересно.Странное поведение с '_' (подчеркивание) в 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"
Почему? Это дизайнерское решение?
Это действительно удобная функция. Если вы хотите сохранить результаты своей последней операции: 'a = _'. Я часто использую 'irb' в качестве удобного калькулятора, так что вы можете легко связать вещи:' _/1e6' например. – tadman
Представлены еще более интересные значения для подчеркивания [здесь] (http://idiosyncratic-ruby.com/33-too-expressive.html#underscore-4-syntactical-meanings), например визуальный разделитель ('1_000_000') или игнорируемый параметр 'object.each {| _, v | ...} ' – engineersmnky