请考虑以下代码:
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)
其中计算执行的最后一个语句的值.