2012-06-22 3 views
19

Ich bin neu in Ruby, und ich sah diesen CodeRubin Rohr Operator

1|2 

Snippet und es gibt 3

Was bedeutet der | Betreiber tatsächlich tun? Ich konnte keine Dokumentation darüber finden. Wird es in diesem Zusammenhang auch als "Pipe" -Operator bezeichnet? oder heißt es etwas anderes?

Antwort

13

In Ruby "Operatoren" sind eigentlich Methodenaufrufe. Sie sind von jeder Klasse definiert.

1 und 2 sind Fixnum und so in 1|2 Rohr tut "bitweise oder".

Ruby doc

Bitwise info

+0

oops, yeah, ich habe nicht einmal über bitweise oder gedacht. Als ich 1 | 2 sah und das Ergebnis 3 war, ging mein Gedanke sofort zur Addition, was mich davon verwirrte. –

23

Dies ist ein Bit-Operator, und sie arbeiten direkt mit der binären Darstellung des Wertes.

| bedeuten ODER. Lass mich dir zeigen, wie es funktioniert.

1|2 = 3 was unter den Hauben passiert ist:

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

ein weiteres Beispiel:

10|2 = 10 jetzt in binär:

10 = 1010 
2 = 0010 
-------- 
10 = 1010 <- result 
+1

+1 großartige Erklärung! – JGutierrezC