iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
Modern Web

Ruby新手村的礦工日記系列 第 6

[ Day 06 ] Ruby 陣列

  • 分享至 

  • xImage
  •  

陣列的概念就像一排藥盒,每一格都會裝著每天你該吃的藥。
這樣就不會吃錯藥,或是吃過量。

另外,你可以放任何東西在陣列中,數字、字串、布林值...

array = [1, 2, "HI",  FALSE, "A"]

以上就是陣列的模樣。

為什麼要使用陣列?

前面字串、數字用的好好的,為什麼要用陣列?
如果像前面一樣,一個一個丟都進變數裡,這樣有點太沒有效率了;但當我們有像陣列一樣的東西,這樣我們要抓資料的話,不就可以整包帶走。
是不是很方便啊!

要怎麼建立陣列

要怎麼去建立一個新陣列呢?
你可以用以下的方法來建立一個陣列。

p Array.new                    # => []
p Array.new(2)                 # => [nil, nil]
p Array.new(5, "A")            # =>["A", "A", "A", "A", "A"]
p Array.new(2, Hash.new)       # =>[{}, {}]

你也可以使用%w來建立一個陣列。
像是這樣:

list = %w(Ruby Rails Git)
p list # => ["Ruby", "Rails", "Git"]

:::warning
注意:
當你使用%w來建立陣列時,他會自動幫你建立一個裡面是字串的陣列。
:::

陣列要怎麼取值

在陣列中,每個值的位置是以索引值來稱呼的,且是以0開始計算,例如:

list = [1, 2, "HI",  FALSE, "World", "name", 3]

puts list[0]    # => 1

位置是從0開始計算,知道位置是從0計算之後,就可以任意拿陣列中的值。
而且拿最後一個值,可以不用這麼辛苦一個一個算他是在第幾個,索引值可以直接打-1,這樣就可以拿到了。

list = [1, 2, "HI",  FALSE, "World", "name", 3]

puts list[1]    # => 2
puts list[2]    # => HI
puts list[-1]   # => 3
puts list[-2]   # => name

但是在Ruby裡面,有另外一種拿法。

list = [1, 2, "HI",  FALSE, "World", "name", 3]

puts list.first    # => 1
puts list.last     # => 3

這樣使用是不是很像英文,那你是否想問有沒有second這個方法,答案是沒有
Ruby並沒有提供這個方法。

陣列中有多少元素

有一個很多元素的陣列,想知道裡面有多少元素,可以用length

list = [1, 2, "HI",  FALSE, "World", "name", 3]

puts list.length    # => 7

我加東西在這個陣列中後面,這時候length會是多少呢?

list = [1, 2, "HI",  FALSE, "World", "name", 3]

puts list.length    # => 7
list << "miik tea"  # 在list 陣列中後面加一個元素
puts list.length    # => 8
list.push(5)        # 在list 陣列中後面加一個元素
puts list.length    # => 9

<<將你要加的元素放在陣列的最後面,或是用push,這兩種方式都可以將元素放在陣列最後面。

參考資料:

  1. 為你自己學 Ruby on Rails

上一篇
[ Day 05 ] Ruby 中的數字沒有你想得這麼簡單
下一篇
[Day 07 ] Ruby - 10種陣列操作的方法
系列文
Ruby新手村的礦工日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言