簡體   English   中英

Ruby - 換行符和運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM