在浏览一些 Ruby 文档时,我遇到了百分比字符串,其中有两个我有点困惑。具体来说就是 %()
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"
为什么,在什么情况下,人们更愿意使用它们而不是仅仅创建一个字符串文字,因为它们似乎并没有通过键入或简化来节省多少?
最佳答案
%
和%q
形式也是 字符串文字,只是解析规则不同。考虑:
%q(I am a 'string' with a "string" in me!)
允许使用不同的形式,使用不同的转义/终止字符,可以使某些文字更容易表达。默认情况下,我更喜欢 '
,但这是关于针对给定情况使用适当的形式。
%
(与%Q
相同)和%q
形式与"
有相同的关系和 '
形式;因此使用其中一种(同一系列)之间的区别应该很清楚。
历史上,这些 different % Notations从 perl 中“借来”。
关于ruby - 为什么使用 %q( ) 或 %( )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268215/