estaba viendo un vídeo de metaprogramming PragProg, y Dave Thomas mostraron este fragmento de código:Ruby: ¿Qué significa el fragmento: (num & 1) == 0 exactamente hacer?
module Math
class << self
def is_even?(num)
(num & 1) == 0 # What exactly is going on here? Particularly (num & 1)
end
end
end
puts Math.is_even? 1 # => false
puts Math.is_even? 2 # => true
Ahora entiendo lo que está pasando aquí, pero no sé qué es exactamente lo que está sucediendo con la parte (num & 1)
del método de clase Math.is_even?
. Sé que es una operación de bit a bit pero eso es todo. ¿Puede alguien explicarme qué sucede con esa línea de código? Gracias.