3 ms·
To counter some of the complaints regarding readability, a major use case for this is simply hacking stuff together in the REPL. Sometimes you notice you want t
by jaynetics 6y ago
To counter some of the complaints regarding readability, a major use case for this is simply hacking stuff together in the REPL. Sometimes you notice you want to have your result as a variable when you've just typed a line, and other solutions for this problem (Ctrl+A or ENTER plus foo = _) are not universal.
Disclaimer: I'm not a core dev but saw a discussion amongst them about such use cases.
- mcphage 6y agoThis is the exact reason I've wanted this, for a long time. I even asked Matz about it a conference once, probably 10-ish years ago.
- stouset 6y agoThis is a completely unnecessary feature. `_` is always assigned to the value of the previous expression. >> 4 + 2 => 6 >> _ => 6 >> "abc" + "def" => "abcdef" >> _ => "abcdef Adding this kind of syntax for something that's already trivial to do is honestly kind of distressing for me as a Ruby developer who's been around since early 1.8. I still strongly believe that the `key: value` hash syntax was a massive mistake. That's a lost battle, but this is getting ridiculous.
- jordoh 6y ago`_` being assigned the result of the last statement evaluated is an IRB feature [1], not a ruby feature - hence the note that it is not a universal solution. [1]: https://github.com/ruby/irb/blob/master/lib/irb/context.rb#L344 https://github.com/ruby/irb/blob/master/lib/irb/context.rb#L...
- stouset 6y agoSo? Why does this need to be in the language when both major REPLs already support it? Why must this be yet another alternative way to accomplish the same thing as the way that’s existed since the first days of the language? There is no argument in favor of this addition. It doesn’t allow anything new, it provides a pointless alternative to the current way of doing things, and the one situation where it’s useful—REPLs—there’s already a feature that renders it completely unnecessary.
- jordoh 6y agoFor better or worse, providing multiple ways to do the same thing is part of ruby's philosophy. [1] [1]: https://www.artima.com/intv/ruby.html https://www.artima.com/intv/ruby.html
- choward 6y agoThen maybe it should be a feature that only exists in the REPL like _.
- ultrarunner 6y agoI've got "<up> <ctrl-a> q = " in muscle memory by now. I feel like I've got a hand tied behind my back when I'm in a place that doesn't support those keybindings, but I'm not sure finding rightward assigns peppered at the 128th stack depth is going to make me a happier developer.