iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
自我挑戰組

自我挑戰Ruby系列 第 16

Day 16 - 陣列1

  • 分享至 

  • xImage
  •  

什麼是陣列?

陣列在維基百科中的定義(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)結果相同

https://ithelp.ithome.com.tw/upload/images/20231001/20162251diag65piQS.png

https://ithelp.ithome.com.tw/upload/images/20231001/20162251aBSxDaF8bA.png

Day 16 結語

我每天學習這些新的東西,慢慢開始覺得很有趣,也體會到,

想達成一件事不一定只有一個方法,可以藉由不同的方法達成自己想要的結果,

就像人生一樣,人生不一定只有一條路可以前進,就算大家覺得在繞道而行,

最後只要到達你想前往的道路,也是可以的。


上一篇
Day 15 - 流程控制4
下一篇
Day 17 - 陣列2
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言