2014-04-21 263 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