ただ興味があります。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
ビジュアルセパレータ( '1_000_000')のように、アンダースコアのいくつかの楽しい意味が、[Here](http://idiosyncratic-ruby.com/33-too-expressive.html#underscore-4-syntactical-meanings)または無視されたパラメータ 'object.each {| _、v | ...} ' – engineersmnky