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

%Q

用于替代雙引號的字符串. 當(dāng)你需要在字符串里放入很多引號時候, 可以直接用下面方法而不需要在引號前逐個添加反斜杠 (")

2.3.0 :015 > %Q(rudy said, "i'm not ruby")
 => "rudy said, \"i'm not ruby\""

(...)也可用其他非數(shù)字字母的符號或成對的符號代替, 諸如#...#,!...!, +...+,{...},[...], <...>,/.../等.

2.3.0 :016 > %Q/rudy said, "i'm not ruby"/
 => "rudy said, \"i'm not ruby\""
2.3.0 :017 > %Q#rudy said, "i'm not ruby"#
 => "rudy said, \"i'm not ruby\""
2.3.0 :018 > %Q!rudy said, "i'm not ruby"!
 => "rudy said, \"i'm not ruby\""

%q

與%Q類似,用于代替單引號的字符串

2.3.0 :031 > what_ruby = 'this is ruby'
 => "this is ruby"
2.3.0 :032 > %Q!rudy said, "#{what_ruby}"!
 => "rudy said, \"this is ruby\""
2.3.0 :033 > %q!rudy said, "#{what_ruby}"!
 => "rudy said, \"\#{what_ruby}\""

(...)也可用其他非數(shù)字字母的符號或成對的符號代替, 諸如#...#,!...!, +...+,{...},[...], <...>,/.../等.

%W职员,%w

%W語法近似于%Q, 用于表示其中元素被雙引號括起的數(shù)組.
%w語法近似于%q, 用于表示其中元素被單引號括起的數(shù)組.

2.3.0 :031 > what_ruby = 'this is ruby'
 => "this is ruby"
2.3.0 :034 > %W(hello,kitty,cat,dog,what_ruby)
 => ["hello,kitty,cat,dog,what_ruby"]          ###不能用逗號隔開戈毒,只能用空格
2.3.0 :035 > %W(hello kitty cat dog what_ruby)
 => ["hello", "kitty", "cat", "dog", "what_ruby"]
2.3.0 :036 > %W(hello kitty cat dog #{what_ruby})
 => ["hello", "kitty", "cat", "dog", "this is ruby"]###雙引號中可以被解析
2.3.0 :037 > %w(hello kitty cat dog #{what_ruby})
 => ["hello", "kitty", "cat", "dog", "\#{what_ruby}"]###單引號中不能被解析,被轉(zhuǎn)義了宵溅。

%x

用于執(zhí)行一段shell腳本项滑,并返回輸出內(nèi)容曙旭。

2.3.0 :038 > %x(route -n)
 => "Kernel IP routing table\nDestination     Gateway         Genmask         Flags Metric Ref    Use Iface\n0.0.0.0         10.6.0.1        0.0.0.0         UG    100    0        0 eth0\n10.6.0.0        0.0.0.0         255.255.252.0   U     0      0        0 eth0\n"
2.3.0 :039 > %x(echo "hello world")
 => "hello world\n"

%r

語法近似于%Q, 用于正則表達(dá)式.

2.3.0 :031 > what_ruby = 'this is ruby'
 => "this is ruby"
2.3.0 :041 > %r(/home/#{what_ruby})
 => /\/home\/this is ruby/

%s

用于表示symbol, 但是不會對其中表達(dá)式等內(nèi)容進(jìn)行轉(zhuǎn)化

2.3.0 :031 > what_ruby = 'this is ruby'
 => "this is ruby"
2.3.0 :042 > %s(a b c)
 => :"a b c"
2.3.0 :043 > %s(abc)
 => :abc
2.3.0 :044 > %s(what_ruby)
 => :what_ruby
2.3.0 :045 > %s(#{what_ruby})
 => :"\#{what_ruby}"

%i

Ruby 2.0 之后引入的語法, 用于生成一個symbol數(shù)組

2.3.0 :031 > what_ruby = 'this is ruby'
 => "this is ruby"
2.3.0 :046 > %i(a b c)
 => [:a, :b, :c]
2.3.0 :047 > %i(a b c #{what_ruby})
 => [:a, :b, :c, :"\#{what_ruby}"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市便监,隨后出現(xiàn)的幾起案子痒筒,更是在濱河造成了極大的恐慌,老刑警劉巖茬贵,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簿透,死亡現(xiàn)場離奇詭異,居然都是意外死亡解藻,警方通過查閱死者的電腦和手機(jī)老充,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來螟左,“玉大人啡浊,你說我怎么就攤上這事觅够。” “怎么了巷嚣?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵喘先,是天一觀的道長。 經(jīng)常有香客問我廷粒,道長窘拯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任坝茎,我火速辦了婚禮涤姊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗤放。我一直安慰自己思喊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布次酌。 她就那樣靜靜地躺著恨课,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岳服。 梳的紋絲不亂的頭發(fā)上庄呈,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音派阱,去河邊找鬼。 笑死斜纪,一個胖子當(dāng)著我的面吹牛贫母,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盒刚,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腺劣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了因块?” 一聲冷哼從身側(cè)響起橘原,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涡上,沒想到半個月后趾断,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吩愧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年芋酌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雁佳。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡脐帝,死狀恐怖同云,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堵腹,我是刑警寧澤炸站,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站疚顷,受9級特大地震影響旱易,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荡含,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一咒唆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧释液,春花似錦全释、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寝蹈,卻和暖如春李命,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箫老。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工封字, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耍鬓。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓阔籽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親牲蜀。 傳聞我的和親對象是個殘疾皇子笆制,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • %Q 用于替代雙引號的字符串. 當(dāng)你需要在字符串里放入很多引號時候, 可以直接用下面方法而不需要在引號前逐個添加反...
    柳輝閱讀 1,228評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,237評論 0 4
  • 本文介紹 Ruby 基本的數(shù)據(jù)類型,主要參考《Ruby編程語言》涣达。Ruby支持的數(shù)據(jù)類型包括基本的Number在辆、S...
    零小白閱讀 12,147評論 0 11
  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,099評論 0 0
  • 開發(fā)插件原由 近期項(xiàng)目組考慮到編寫代碼的時候有個繁瑣的工作 class -> className for -> h...
    BoomHe閱讀 567評論 0 1