2012-06-22 19 views
19

Soy nuevo al rubí, y vi este fragmento de códigorubí operador de tubería

1|2 

y devuelve 3

¿Qué operador | realmente? No pude encontrar ninguna documentación sobre eso. Además, en este contexto ¿se lo conoce como el operador de "tubería"? o se llama algo más?

Respuesta

13

En Ruby, "operadores" son en realidad las llamadas a métodos. Ellos están definidos por cada clase.

1 y 2 son Fixnum y por lo tanto en 1|2 la tubería hace "bitwise or".

Ruby doc

Bitwise info

+0

oops, sí, ni siquiera pensé en bit a bit o. cuando vi 1 | 2 y el resultado fue 3, mi pensamiento fue inmediatamente a la suma, así que eso es lo que me confundió al respecto. –

23

Este es un operador de bits y trabajan directamente con la representación binaria del valor.

| mean OR. Dejame mostrarte como funciona.

1|2 = 3 lo que ocurre bajo las capuchas es:

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

otro ejemplo:

10|2 = 10 ahora en binario:

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

+1 gran explicación! – JGutierrezC