ruby中?%W{}和%w{}的使用案例詳解
ruby中 %W{}和%w{}的使用
%w{}是Ruby中的一種快捷方式,用于創(chuàng)建一個(gè)以空格分隔的字符串?dāng)?shù)組。例如,%w{apple banana cherry}將創(chuàng)建一個(gè)包含3個(gè)字符串元素的數(shù)組:["apple", "banana", "cherry"]。這種寫法比使用["apple", "banana", "cherry"]要更簡便,并且更易于閱讀。
可以使用#{}結(jié)合變量來在%w{}中插入變量。例如,
file_name = "example.txt" file_data = %w{This is an example file #{file_name}} 這將創(chuàng)建一個(gè)字符串?dāng)?shù)組 `file_data`,其中包含三個(gè)元素:"This"、"is"、"an"、"example"、"file"和"example.txt"。注意,#{file_name} 將會(huì)被替換成變量 `file_name` 的值。
這將創(chuàng)建一個(gè)字符串?dāng)?shù)組 `file_data`,其中包含三個(gè)元素:"This"、"is"、"an"、"example"、"file"和"example.txt"。注意,#{file_name} 將會(huì)被替換成變量 `file_name` 的值。
在使用 %w
時(shí),Ruby 會(huì)將字符串中的空格作為分隔符,將其拆分成一個(gè)字符串?dāng)?shù)組。在上面這個(gè)例子中,Ruby 會(huì)將 "This is an example file #{file_name}"
拆分為 "This"、"is"、"an"、"example"、"file" 和 "\#{file_name}"
這幾個(gè)字符串,其中 "\#{file_name}"
并不會(huì)被解析為變量 file_name
的值。如果想要將 file_name
的值插入到字符串中,可以使用字符串插值的方式,例如:
file_data = %W{This is an example file #{file_name}}
注意,在使用 %W
時(shí)需要將字符串中的變量使用 #{}
包裹起來,這樣 Ruby 才會(huì)在字符串中插入變量的值
%w{}和%W{}都是用來表示字符串?dāng)?shù)組的語法,區(qū)別在于%w{}默認(rèn)以空格作為分隔符,而%W{}可以自定義分隔符。
例如:
arr1 = %w{apple banana orange} arr2 = %W[apple banana orange] arr3 = %w|apple banana orange| arr4 = %W(apple banana orange) puts arr1.inspect #=> ["apple", "banana", "orange"] puts arr2.inspect #=> ["apple", "banana", "orange"] puts arr3.inspect #=> ["apple", "banana", "orange"] puts arr4.inspect #=> ["apple", "banana", "orange"]
以上四個(gè)數(shù)組的輸出結(jié)果都是一樣的,因?yàn)樗鼈兌急硎镜氖前齻€(gè)元素的字符串?dāng)?shù)組。但是使用了不同的分隔符。
另外需要注意的是,%w{}和%W{}中的字符串不需要使用引號括起來。例如:
arr5 = %w{I am a string} arr6 = %W{I am also a string} puts arr5.inspect #=> ["I", "am", "a", "string"] puts arr6.inspect #=> ["I", "am", "also", "a", "string"]
以上兩個(gè)數(shù)組輸出的結(jié)果也是一樣的。
Ruby中%Q,%q,%W,%w,%x,%r,%s的用法
1.{}是分界符,即相同的符號或者一對符號
2.解釋如下:
%s{String} 生成一個(gè)符號對象 %r{String} 創(chuàng)建一個(gè)正則表達(dá)式字面值 %x{String} 執(zhí)行String所代表的命令
%{String} 創(chuàng)建一個(gè)使用雙引號括起來的字符串 %Q{String} 創(chuàng)建一個(gè)使用雙引號括起來的字符串 %q{String} 創(chuàng)建一個(gè)使用單引號括起來的字符串
%w{String} 將一個(gè)字符串以空白字符切分成一個(gè)字符串?dāng)?shù)組,進(jìn)行較少替換(用單引號定義字符串一樣,不會(huì)ruby解析) %W{String} 將一個(gè)字符串以空白字符切分成一個(gè)字符串?dāng)?shù)組,進(jìn)行較多替換(用雙引號定義字符串一樣,可以ruby解析)
3.測試結(jié)果:
$ irb
irb(main):001:0> t = %s|test|
=> :test
irb(main):002:0> t = %+test string+
=> “test string”
irb(main):003:0> %Q[It is just test Q. so 1+2=#{1+2}]
=> “It is just test Q. so 1+2=3″
irb(main):004:0> %q[It is just test q. so 1+2=#{1+2}]
=> “It is just test q. so 1+2=\#{1+2}”
irb(main):005:0> %W[It is just test %W so 1+2=#{1+2}]
=> ["It", "is", "just", "test", "%W", "so", "1+2=3"]
irb(main):006:0> %w[It is just test %w so 1+2=#{1+2}]
=> ["It", "is", "just", "test", "%w", "so", "1+2=\#{1+2}"]
irb(main):007:0>
到此這篇關(guān)于ruby中 %W{}和%w{}的使用的文章就介紹到這了,更多相關(guān)ruby %W{}和%w{}使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ruby 中$開頭的全局變量、內(nèi)部變量、隱藏變量介紹
這篇文章主要介紹了Ruby 中$開頭的全局變量、內(nèi)部變量、隱藏變量介紹,需要的朋友可以參考下2014-04-04Ruby使用設(shè)計(jì)模式中的代理模式與裝飾模式的代碼實(shí)例
這篇文章主要介紹了Ruby使用設(shè)計(jì)模式中的代理模式與裝飾模式的代碼實(shí)例,代理模式與裝飾模式都可以歸類為結(jié)構(gòu)型的設(shè)計(jì)模式,需要的朋友可以參考下2016-03-03Ruby微信開發(fā)的幾個(gè)開源項(xiàng)目介紹
這篇文章主要介紹了Ruby微信開發(fā)的幾個(gè)開源項(xiàng)目介紹,需要的朋友可以參考下2014-05-05Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Ruby連接使用windows下sql server數(shù)據(jù)庫代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,而且給出了兩種實(shí)現(xiàn)和access數(shù)據(jù)庫的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05win7安裝ruby on rails開發(fā)環(huán)境
看到很多文章都說ruby環(huán)境在windows上是非常難搭建,會(huì)出現(xiàn)各種各樣的怪問題,所以都推薦到linux和mac上安裝開發(fā)。但是我按照教程搭了下,問題也不算太多??傔^大概花費(fèi)了2個(gè)半小時(shí)左右就完成了。下面就把安裝的步驟及具體的版本記錄了一下供大家參考。2014-07-07