Ruby 裡的 %Q, %q, %W, %w, %x, %r, %s, %i

來源:互聯網
上載者:User

標籤:

%Q

用於替代雙引號的字串. 當你需要在字串裡放入很多引號時候, 可以直接用下面方法而不需要在引號前逐個添加反斜線 (\")

>> %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寫作:

>> %/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數組

2.0.0p247 :014 > %i(a b c)=> [:a, :b, :c] 

原文地址:https://ruby-china.org/topics/18512

Ruby 裡的 %Q, %q, %W, %w, %x, %r, %s, %i

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.