为什么要使用%q()或%()?

时间:2015-03-25 23:08:18

标签: ruby string

当我浏览一些Ruby Doc时,我遇到了百分比字符串,其中两个我有点困惑。具体来说就是%()

string = %(I am a string)
 #=> "I am a string"

和%q()

 string = %q(I am a string)
     #=> "I am a string"

当我和他们一起玩时,他们似乎都输出了一个字符串,就像我刚写的一样

string = "I am a string"
#=> "I am a string"

为什么以及在什么情况下,人们更愿意使用它们而不是仅仅创建一个字符串文字,因为它们似乎不会通过打字或轻松来节省多少?

1 个答案:

答案 0 :(得分:4)

%%q表单也是字符串文字,只是使用不同的解析规则。考虑:

%q(I am a 'string' with a "string" in me!)

允许具有不同转义/终止字符的不同表单可以使某些文字更容易表达。我更喜欢' - 默认情况下,但它是关于在给定情况下使用适当的表单。

%(与%Q)和%q表单相同,与"'表单的关系相同;因此,使用一个或另一个(同一家族)之间的区别应该是明确的。

从历史上看,这些different % Notations是从perl“借来的”。