用於替代雙引號的字符串. 當你須要在字符串裏放入不少引號時候, 能夠直接用下面方法而不須要在引號前逐個添加反斜槓 (\")shell
>> %Q(Joe said: "Frank said: "#{what_frank_said}"") => "Joe said: "Frank said: "Hello!"""
(
...)
也可用其餘非數字字母的符號或成對的符號代替, 諸如[
...]
, !
...!
, +
...+
,{
...}
, <
...>
等.
如下寫法所有與上面等效:數組
>> %Q!Joe said: "Frank said: "#{what_frank_said}""! >> %Q[Joe said: "Frank said: "#{what_frank_said}""] >> %Q+Joe said: "Frank said: "#{what_frank_said}""+
除此以外還可省略Q
寫做:ruby
>> %/Joe said: "Frank said: "#{what_frank_said}""/ => "Joe said: "Frank said: "Hello!"""
與%Q
相似, 可是表示的是單引號字符串wordpress
>> %q(Joe said: 'Frank said: '#{what_frank_said} ' ') => "Joe said: 'Frank said: '\#{what_frank_said} ' '"
語法近似於%Q
, 用於表示其中元素被雙引號括起的數組.spa
>> %W(#{foo} Bar Bar\ with\ space) => ["Foo", "Bar", "Bar with space"]
用於表示其中元素被單引號括起的數組. 比較奇怪的是\
(斜槓空格)會被轉化成(空格), 可是其餘的內容不會.code
>> %w(a b c\ d \#e #{1}f) => ["a", "b", "c d", "\\#e", "\#{1}f"]
使用`方法執行一段shell腳本並返回標準輸出內容.字符串
>> %x(echo foo:#{foo}) => "foo:Foo\n"
語法近似於%Q
, 用於正則表達式.get
>> %r(/home/#{foo}) => "/\\/home\\/Foo/"
用於表示symbol, 可是不會對其中表達式等內容進行轉化it
>> %s(foo) => :foo >> %s(foo bar) => :"foo bar" >> %s(#{foo} bar) => :"\#{foo} bar"
Ruby 2.0 以後引入的語法, 用於生成一個symbol數組
2.0.0p247 :014 > %i(a b c) => [:a, :b, :c]