Ruby教學 - 陣列(Array)
1. 語法
1.1 一般陣列
Ruby中使用中括號([])來建立陣列,括號中為陣列元素,以逗點(,)隔開:
p [178, 169.99, "30cm", [9527]] # [178, 169.99, "30cm", [9527]]
陣列中的元素也可以是陣列,而成為多維陣列的應用。
1.2 字串陣列
Ruby中另外提供了使用百分比符號(%)開頭,加上任意的符號(非字母數字)包夾字串陣列元素,以空白隔開,有以下兩種方式:
- %w{xx oo},不解析內容
- %W{xx oo},解析內容
規則和單引號雙引號類似,所有的元素都會是字串型別,如下範例:
var = 5566 p %w{178 169.99 "30cm" [9527] %w{9527} #{var}} # ["178", "169.99", "\"30cm\"", "[9527]", "%w{9527}", "\#{var}"] p %W{178 169.99 "30cm" [9527] %W{9527} #{var}} # ["178", "169.99", "\"30cm\"", "[9527]", "%W{9527}", "5566"] p %w[可以 用 各種 包夾 符號] # ["可以", "用", "各種", "包夾", "符號"]
1.3 符號陣列
在Ruby2.0之後新增,一樣使用百分比符號(%)開頭,加上任意的符號(非字母數字)包夾字串陣列元素,以空白隔開,有以下兩種方式:
- %i{xx oo},不解析內容
- %I{xx oo},解析內容
規則和單引號雙引號類似,所有的元素都會是符號型別,如下範例:
var = 5566 p %i{178 169.99 "30cm" [9527] %i{9527} #{var}} # [:"178", :"169.99", :"\"30cm\"", :"[9527]", :"%i{9527}", :"\#{var}"] p %I{178 169.99 "30cm" [9527] %I{9527} #{var}} # [:"178", :"169.99", :"\"30cm\"", :"[9527]", :"%I{9527}", :"5566"] p %i[可以 用 各種 包夾 符號] # [:可以, :用, :各種, :包夾, :符號]
2. 陣列存取
我們使用中括號([])加上索引值來表示陣列中的元素,例如:array[0],以此方式可以取得或修改陣列元素的內容。以下為存取陣列的相關範例:
ar = [] ar << 55 # push ar.push(66) ar[5] = 178 p ar # [55, 66, nil, nil, nil, 178] ar = %w{a b c d e f g} p ar[-1] # "g" # ar[開始索引, 數目] p ar[2, 4] # ["c", "d", "e", "f"] # 使用range p ar[2..4] # ["c", "d", "e"] p ar[2...4] # ["c", "d"]
3. 轉型
陣列可以用以下轉型函式:
- to_s
- to_h
如下範例:
p [178, 169.99, "30cm", [9527]].to_s # "[178, 169.99, \"30cm\", [9527]]" p [[:key, :value]].to_h # {:key=>:value} # p [:key, :value].to_h # error
兩個兩個元素的陣列可以轉成Hash物件