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

Hol*_*oly 3 ruby string

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

string = %(I am a string)
 #=> "I am a string"
Run Code Online (Sandbox Code Playgroud)

和%q()

 string = %q(I am a string)
     #=> "I am a string"
Run Code Online (Sandbox Code Playgroud)

当我和他们一起演奏时,它们似乎都输出了与我刚刚写的相同的字符串

string = "I am a string"
#=> "I am a string"
Run Code Online (Sandbox Code Playgroud)

为什么以及在哪种情况下,宁愿使用它们而不是仅仅创建字符串文字,因为它们似乎并没有通过键入或简化而节省很多?

use*_*740 5

%%q形式字符串文字,以及,只是不同的解析规则。考虑:

%q(I am a 'string' with a "string" in me!)
Run Code Online (Sandbox Code Playgroud)

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

%(同%Q)和%q形式具有作为相同的关系"'表格; 因此使用(同一个家族的)另一种之间的区别应该很明显。

从历史上看,这些不同的%表示法是从perl中“借来的”。