Chiayin's blog

【2020 12th鐵人賽】Ruby名詞解釋總匯 - Day 4 : Ruby中的「資料型別、字串」

字數統計: 757閱讀時間: 3 min
2022/10/30

https://ithelp.ithome.com.tw/upload/images/20200911/201294246vWHhqjTUl.jpg

資料型別 Data Type

在了解接下來的單元前,先簡單知道Ruby世界的資料型別。

*普羅大眾的「資料型別」?
電腦的功能就是處理無數的資料,資料是儲存在記憶體的儲存區,由於資料的型態各不相同,在儲存時所需要的容量不一,不同的資料必須要配給不同的空間大小來儲存,因而有了資料型態(Data type)的規範。

只要是資料都有型別。

*Ruby世界的資料型別
由於Ruby是個完全物件導向的語言,從下圖可以看到物件的階層關係,所有型別皆繼承自物件(Object),甚至是模組(Module)和類別(Class)。

所有的型別都是物件。

字串 String

*英文發音
首先來聽聽英文發音~。
Yes

名詞解釋

*什麼是字串?
使用引號包起來的一段文字。

*建立方法?

方法 程式解析 範例
new方法 建立出物件 wish = String.new("World peace")
單引號 Single Quote 不解析內容,不做代入與翻譯 wish = 'World peace'
雙引號 Double Quote 解析內容 wish = "World peace"
%q() 同單引號,Ruby特有的寫法 %q(World peace)
%Q() 同雙引號,Ruby特有的寫法 %Q(World peace)

*字串可以串接!如何串接字串? -> 字串嵌入 String interpolation

Ruby世界的串接方式:
字串中可使用#{expr}的形式插入程式碼,稱為Interpolation,通常用來填入變數,不過也可以執行程式。

1
2
3
value = 2 * 5
puts "2 * 5 = #{value}" # 2 * 5 = 10
puts "2 * 5 = #{2 * 5}" # 2 * 5 = 10

單引號和雙引號最大的差別:
只有使用雙引號的字串可以使用String interpolation,用法如下。

1
2
3
4
5
6
7
8
name = "Lisa"
wish = "World peace"

puts "I'm #{name}, I wish for #{wish}."
印出來 -> I'm Lisa, I wish for World peace.

puts 'I am #{name}, I wish for #{wish}.'
印出來 -> I am #{name}, I wish for #{wish}.

*字串當中也需要用到引號該怎麼辦?

1
2
3
4
puts 'I'm Lisa, I wish for World peace.'
印出來 -> syntax error, unexpected tIDENTIFIER, expecting end-of-input

會出現語法錯誤。

解法一:改用雙引號" "
解法二:加上反斜線\,反斜線的後面加上非字串的單引號,讓他跳脫字元。
解法三:改用%q(),效果等同單引號。


參考資料

回家作業

請回答以下題目:

1
2
3
4
5
1.請解釋字串使用雙引號、單引號,有何不同?

2.以下程式碼出錯了,請改寫他。
puts "我喜歡"為你自己學Ruby on Rails"這本書,深入淺出,真是初學者的最佳入手書!"
印出來 -> syntax error, unexpected tIDENTIFIER, expecting end-of-input

本文於 2020-09-11 發表在舊網站。

發佈日期:2022-10-30

更新日期:2022-10-30

CATALOG
  1. 1. 資料型別 Data Type
  2. 2. 字串 String
    1. 2.1. 名詞解釋
  3. 3. 參考資料
  4. 4. 回家作業