当我浏览一些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"
为什么以及在什么情况下,人们更愿意使用它们而不是仅仅创建一个字符串文字,因为它们似乎不会通过打字或轻松来节省多少?
答案 0 :(得分:4)
%
和%q
表单也是字符串文字,只是使用不同的解析规则。考虑:
%q(I am a 'string' with a "string" in me!)
允许具有不同转义/终止字符的不同表单可以使某些文字更容易表达。我更喜欢'
- 默认情况下,但它是关于在给定情况下使用适当的表单。
%
(与%Q
)和%q
表单相同,与"
和'
表单的关系相同;因此,使用一个或另一个(同一家族)之间的区别应该是明确的。
从历史上看,这些different % Notations是从perl“借来的”。