25

私はルビーに不慣れで、このコードスニペットを見ました

1|2

そしてそれは3を返します

オペレーターは実際に何をし|ますか?ドキュメントが見つからなかったようです。また、この文脈では、それは「パイプ」演算子と呼ばれますか?それとも他の何かと呼ばれていますか?

4

3 に答える 3

31

これはビット演算子であり、値のバイナリ表現を直接操作します。

|ORを意味します。それがどのように機能するかをお見せしましょう。

1|2 = 3 内部で何が起こるかは次のとおりです。

1 = 0001
2 = 0010
--------
3 = 0011 <- result

もう一つの例:

10|2 = 10 今バイナリで:

10 = 1010
2  = 0010
--------
10 = 1010 <- result
于 2014-04-22T11:33:49.200 に答える
14

Rubyでは、「演算子」は実際にはメソッド呼び出しです。それらは各クラスによって定義されます。

1と2はFixnumであるため、1|2パイプでは「ビット単位または」を実行します。

Rubyドキュメント

ビット単位の情報

于 2012-06-22T23:04:36.353 に答える
2

これはビット単位または演算子です。

http://www.java2s.com/Code/Ruby/Language-Basics/dobitwiseoperationsinRuby.htm

于 2012-06-22T23:03:31.357 に答える