Tengo una pregunta sobre las palabras clave/& &/= en Ruby.Prioridad del operador para And/&& en Ruby
Los ruby dicen que la precedencia para las palabras clave mencionadas es: (1) & &, (2) =, (3) y.
que tienen este fragmento de código que he escrito:
def f(n)
n
end
if a = f(2) and b = f(4) then
puts "1) #{a} #{b}"
end
if a = f(2) && b = f(4) then
puts "2) #{a} #{b}"
end
la salida es:
1) 2 4 [esperado]
2) 4 4 [? Por qué]
Por algún motivo, al usar & &, ¿se pueden evaluar tanto a como b para 4?
Lo que no entiendo en su ejemplo es por qué no sería evaluado como: 'if a = (f (2) && b) = f (4) entonces' – nus