建立字串時可以用單引號或雙引號把字包住,例如:
puts 'Hello World'
puts "Hello World"
上面的單引號與雙引號使用下,沒有什麼不同的,
但在Ruby中,究竟單引號和雙引號有什麼不同?
puts 'Arance\'s age'
puts "Arance’s age"
在單引號內的’s前面必須要使用反斜線()作為跳脫序列。
跳脫序列(escape sequence)可以參考維基百科上:https://zh.wikipedia.org/zh-tw/转义序列
主要是因為無法將代碼直接寫出時所採用的方式,在跳脫時所使用的字元組合。
會藉由反斜線()來做一個跳脫序列,例如:\n 表示換行。
那在Ruby中單引號只允許可以使用兩個跳脫字元:
' → 單引號
\ → 單斜線
然而在Ruby中雙引號比起單引號,可使用的跳脫字元來的更多:
" → 雙引號
\ → 單斜線
\n → 換行
\t → Tab鍵
\r → Return鍵
\s → 空白鍵
\b → Backspace鍵
\a → 產生警示音
可以藉由 %q 或 %Q 來處理過多引號,避免使用跳脫字元。
單引號(Single quotation marks)可以使用 %q
雙引號(Double quotation marks)可以使用 %Q
相信使用Q的原因也是因為英文的部分取引號(Quotation marks)。
串接的部分我們會以加號(+)作為接點,或用#{變數} 將變數帶入,以及也可以用陣列以及join作為組合。
在談論分割的部分前,首先先針對取字的部分,我們必須先瞭解到:
在Ruby的世界第一個位置代表的是0,也就是位置的起始值為0。
最後一個位置代表為-1,所以想從後面取回來可以使用負數。
我們也可以藉由0..-1 (可以從第0個位置取到倒數第一個位置的字)
分割的部分,我們可以藉由split方法做拆解字元,.split會以空白做區隔拆成陣列,
而.split(””)會每個字都做拆解,連空白字都算一個字,拆成陣列形式。
在這篇介紹了單引號跟雙引號的差異,還有其實單引號的部分,
串接不會做代入變數,所以上面的例子會是 puts "我叫#{name}",而不是使用單引號來寫。
既然單引號不會做代入變數的效果,所以也不會使用%q(),而是使用%Q()。
以及如何串接與分割字元,但總覺得字串的部分還有很多還沒提及,但學習總是那麼學海無涯。
學習到split 和join兩個方法,下一篇會介紹更多字串的用法。