Ruby - 换行符和运算符

mop*_*oke 11 ruby operators

请考虑以下代码:

x = 4
y = 5
z = (y + x)

puts z
Run Code Online (Sandbox Code Playgroud)

正如您所期望的那样,输出是9.如果你引入换行符:

x = 4
y = 5
z = y
+ x

puts z
Run Code Online (Sandbox Code Playgroud)

然后输出5.这是有道理的,因为它被解释为两个单独的语句(z = y+x).

但是,当你在括号内有换行符时,我不明白它是如何工作的:

x = 4
y = 5
z = (y
+ x)

puts z
Run Code Online (Sandbox Code Playgroud)

输出是4.为什么?

Ano*_*on. 12

(免责声明:我根本不是Ruby程序员.这只是一个疯狂的猜测.)

随着parens,你z被赋予了价值

y
+x
Run Code Online (Sandbox Code Playgroud)

其中计算执行的最后一个语句的值.