%Q:
用於替代雙引號的字串. 當你需要在字串裡放入很多引號時候, 可以直接用下面方法而不需要在引號前逐個添加反斜線 (")。
>> %Q(Joe said: "Frank said: "#{what_frank_said}"")=> "Joe said: "Frank said: "Hello!"""
%q:
與%Q類似, 但是表示的是單引號字串。
>> %q(Joe said: 'Frank said: '#{what_frank_said} ' ')=> "Joe said: 'Frank said: '\#{what_frank_said} ' '"
%W:
文法近似於%Q, 用於表示其中元素被雙引號括起的數組。
>> %W(#{foo} Bar Bar\ with\ space)=> ["Foo", "Bar", "Bar with space"]
%w:
用於表示其中元素被單引號括起的數組. 比較奇怪的是(斜杠空格)會被轉化成(空格), 但是其他的內容不會。
>> %w(a b c\ d \#e #{1}f)=> ["a", "b", "c d", "\\#e", "\#{1}f"]
%x:
使用`方法執行一段shell指令碼並返回標準輸出內容。
>> %x(echo foo:#{foo})=> "foo:Foo\n"
%r:
文法近似於%Q, 用於Regex.
>> %r(/home/#{foo}) => "/\\/home\\/Foo/"
%s:
用於表示symbol, 但是不會對其中運算式等內容進行轉化。
>> %s(foo)=> :foo>> %s(foo bar)=> :"foo bar">> %s(#{foo} bar)=> :"\#{foo} bar"
%i:
Ruby 2.0 之後引入的文法, 用於產生一個symbol數組。
>> %i(a b c)=> [:a, :b, :c]