[英]Ruby - newlines and operators
請考慮以下代碼:
x = 4
y = 5
z = (y + x)
puts z
正如您所期望的那樣,輸出為9
。 如果你引入換行符:
x = 4
y = 5
z = y
+ x
puts z
然后輸出5
。 這是有道理的,因為它被解釋為兩個單獨的語句( z = y
和+x
)。
但是,當你在括號內有換行符時,我不明白它是如何工作的:
x = 4
y = 5
z = (y
+ x)
puts z
輸出為4
。 為什么?
(免責聲明:我根本不是Ruby程序員。這只是一個瘋狂的猜測。)
使用parens,可以為z
賦值
y
+x
其中計算執行的最后一個語句的值。
用\\結束該行,以便在下一行繼續表達式。 這給出了正確的輸出:
x = 4
y = 5
z = (y \
+ x)
puts z
輸出9
我不知道為什么在沒有轉換換行符的情況下結果出乎意料。 我剛剛學會了從不這樣做。
如果您的線路與操作員完成,那么您將不需要轉義字符\\
a = 4
b = 5
z = a +
b
puts z
# => 9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.