陣列在維基百科中的定義(https://zh.wikipedia.org/zh-tw/数组)為由相同類型的元素的集合所組成的資料結構。
就理解來說,是將一組相同型態的元素,藉由同一個變數名稱儲存起來,
通常以[ ] 的形式存放元素,不過在Ruby這個物件導向的世界裡,
陣列可以放任何型態的元素,因為每個元素都是一個物件。
(1) [ ]:通常以中括弧的形式存放元素,且以逗號的方式將元素分隔。
例如: list = [2, 1, 5, "abc"]
(2) Array.new:以Array.new(n) 或 Array.new(n, element)。
Array.new(n)會產生n個nil的陣列。
例如:Array.new(4) 會產生 [nil, nil, nil]
Array.new(n, element)會產生n個element元素的陣列。
例如:Array.new(2,"hello") 會產生 ["hello", "hello"]
(3) %w:藉由將元素放置%w()內,會形成陣列的樣子。
例如:list = %w(ad fb ig) 會產生["ad", "fb", "ig"]
之前在字串[索引值]可以取得這個字串內的指定字串,也可以利用索引值取得陣列的部分。
位置計算的方式一樣從0開始,負數值就可以從後面數過來,例如-1是最後一個位置。
例如:list = [2, 1, 5, "abc"]
puts list[0]
會得到2,也可以使用 puts list.first
puts list[-1]
會得到abc,也可以使用 puts list.last
前面提過.first 以及.last的方法,其實也可以藉由引數的帶入得到相同結果。
.take → take(n) 可以去陣列中前面數來n個元素。
.drop → drop(n) 可以去陣列中後面數來n個元素。
例如:
[1, 2, 3, 4].take(2) 可以回傳 [1, 2] 也跟 [1, 2, 3, 4].first(2)結果相同
[1, 2, 3, 4].drop(2) 可以回傳 [3, 4]也跟 [1, 2, 3, 4].last(2)結果相同
我每天學習這些新的東西,慢慢開始覺得很有趣,也體會到,
想達成一件事不一定只有一個方法,可以藉由不同的方法達成自己想要的結果,
就像人生一樣,人生不一定只有一條路可以前進,就算大家覺得在繞道而行,
最後只要到達你想前往的道路,也是可以的。