Ruby提供了几种创建String对象的方法。最常见的方法是使用单引号或双引号创建“字符串文字”:
s1 = 'Hello' s2 = "Hello"
主要区别在于,双引号字符串文字更灵活一些,因为它们支持插值和一些反斜杠转义序列。
还有其他几种使用任意字符串定界符创建字符串文字的可能方法。任意字符串定界符%后跟一对匹配的定界符:
%(A string)
%{A string}
%<A string>
%|A string|
%!A string!最后,您可以使用%qand%Q序列,它们'和and等效":
puts %q(A string)
# 一串
puts %q(Now is #{Time.now})
# Now is #{Time.now}
puts %Q(A string)
# 一串
puts %Q(Now is #{Time.now})
# 现在是2016-07-21 12:47:45 +0200%q%Q当字符串包含单引号,双引号或两者混合时,和序列很有用。这样,您无需转义内容:
%Q(<a href="/profile">User's profile<a>)
只要有匹配的对,就可以使用几个不同的定界符:
%q(A string)
%q{A string}
%q<A string>
%q|A string|
%q!A string!