私はルビーに不慣れで、このコードスニペットを見ました
1|2
そしてそれは3を返します
オペレーターは実際に何をし|
ますか?ドキュメントが見つからなかったようです。また、この文脈では、それは「パイプ」演算子と呼ばれますか?それとも他の何かと呼ばれていますか?
これはビット演算子であり、値のバイナリ表現を直接操作します。
|
ORを意味します。それがどのように機能するかをお見せしましょう。
1|2 = 3
内部で何が起こるかは次のとおりです。
1 = 0001
2 = 0010
--------
3 = 0011 <- result
もう一つの例:
10|2 = 10
今バイナリで:
10 = 1010
2 = 0010
--------
10 = 1010 <- result
Rubyでは、「演算子」は実際にはメソッド呼び出しです。それらは各クラスによって定義されます。
1と2はFixnumであるため、1|2
パイプでは「ビット単位または」を実行します。