1. 語法

1.1 一般陣列

Ruby中使用中括號([])來建立陣列,括號中為陣列元素,以逗點(,)隔開:

p [178, 169.99, "30cm", [9527]] # [178, 169.99, "30cm", [9527]] 

陣列中的元素也可以是陣列,而成為多維陣列的應用。

1.2 字串陣列

Ruby中另外提供了使用百分比符號(%)開頭,加上任意的符號(非字母數字)包夾字串陣列元素,以空白隔開,有以下兩種方式:

  1. %w{xx oo},不解析內容
  2. %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之後新增,一樣使用百分比符號(%)開頭,加上任意的符號(非字母數字)包夾字串陣列元素,以空白隔開,有以下兩種方式:

  1. %i{xx oo},不解析內容
  2. %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. 轉型

陣列可以用以下轉型函式:

  1. to_s
  2. 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物件

相关文章