Ich habe eine Frage zu den und/& &/= Schlüsselwörtern in Ruby.Operator Vorrang für And/&& in Ruby
Die Ruby-Dokumente sagen, dass der Vorrang für die genannten Schlüsselwörter ist: (1) & &, (2) =, (3) und.
Ich habe diesen Code-Snippet Ich schrieb:
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
Die Ausgabe lautet:
1) 2 4 [Erwartete]
2) 4 4 [? Warum]
Aus irgendeinem Grund die Verwendung der & & Ursachen beide a und b zu 4 auswerten?
Was ich in Ihrem Beispiel nicht verstehe ist, warum es nicht wie folgt bewertet würde: 'wenn a = (f (2) && b) = f (4) dann " – nus