2014-04-21 253 views
0

所以我在Ruby中玩耍時,發現"a""b"返回"ab"。如果喜歡這個非常奇怪和無用的東西,所以我想知道這是什麼,以及它是否有目的。我會很感激任何答案。謝謝!Ruby中奇怪的字符串行爲

回答

0

我從來沒有注意到這一點,這看起來像另一種形式的連接,如<<+

5

這叫做"string literal concatenation",它在很多語言中都很常見。更具體地說,沒有被任何其他操作符分開的相鄰字符串文字會自動連接在一起。它們可能被認爲只是一個字符串文字。

這存在於C,C++,Python和Ruby中,僅舉幾例。

情況可能的例子被用來打破一個長串到多個謊言,也增加了評論每件作品的能力。這是我在Python寫的一天:

hdr = struct.Struct('<' 
    '8s'  # 0x00 Magic value 
    'I'   # 0x08 Offset 
    'I'   # 0x0C Length 
    'H'   # 0x10 Type 
    'H'   # 0x12 Flags 
)    # 0x14 (Total) 

注意,此方法只需要一個參數,一個字符串,我沒有手動拼接的碎片。

+0

嗯,這很有趣。這有實際應用嗎? – Addison