Consider the following code:
x = 4
y = 5
z = (y + x)
puts z
As you’d expect, the output is 9. If you introduce a newline:
x = 4
y = 5
z = y
+ x
puts z
Then it outputs 5. This makes sense, because it’s interpreted as two separate statements (z = y and +x).
However, I don’t understand how it works when you have a newline within parentheses:
x = 4
y = 5
z = (y
+ x)
puts z
The output is 4. Why?
(Disclaimer: I’m not a Ruby programmer at all. This is just a wild guess.)
With parens, you get
zbeing assigned the value ofWhich evaluates to the value of the last statement executed.