Ruby中的奇怪字符串行为

时间:2014-04-21 21:54:51

标签: ruby string

所以我在Ruby中玩,并注意到"a""b"返回"ab"。如果喜欢这种非常奇怪和无用的东西,那么我想知道这叫什么,如果它有目的。我很感激任何答案。谢谢!

2 个答案:

答案 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)

请注意,此方法只接受一个参数,一个字符串,而且我没有手动连接各个部分。

答案 1 :(得分:0)

我以前从未注意到这一点,这看起来像<<+这种连接形式。