ルビーアンダースコア
Ruby プログラマーとして、おそらく次のようなメソッドやブロックを見たことがあるでしょう:
しかし、これは正確には何ですか
はい、
しかし、IRB で期待するようには機能しません. Rubyコンソールで最後に使用された値を返す
二重下線なし
(>= Ruby 1.9)
ただし、
ルビー アンダースコア
def test(a, b, _); end
proc { |_, a| ... }
しかし、これは正確には何ですか
_
ブッティー、そしてそれはどのように特別ですか?アンダースコアは有効なオブジェクト識別子です
はい、
_
にアクセスして値を割り当てることができます.また、メソッド名としても使用できます.def a(_); puts _; end # a(3) prints 3
しかし、IRB で期待するようには機能しません. Rubyコンソールで最後に使用された値を返す
_ = 1
2
_ # returns 2, not 1
二重下線なし
__
トー:__ = 1
2
__ # returns 1
明示的に構成された アンダースコアは、他のオブジェクト識別子とは少し異なる方法で処理されます
(>= Ruby 1.9)
def test(_, _); end
def test(__, __); end
def test(__x, __x); end
ただし、
def test(x, x); end # this will cause an error
ルビー アンダースコア
_
で構成されている場合、パラメーター名が重複します. ._
を使用するのが最も一般的です.未使用のパラメーター (プレースホルダー) を表すために使用しますが、上記の例で示したように、他のシンボルを使用して「未使用の var」警告を回避することもできます 🙂Reference
この問題について(ルビーアンダースコア), 我々は、より多くの情報をここで見つけました https://dev.to/donaldong/ruby-underscore-57fhテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol