iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
Software Development

Ruby 研究 30 天系列 第 4

Day 3 - 範圍與陣列

  • 分享至 

  • xImage
  •  

Range 範圍

$ irb
"你說好笑不好笑"[2]
=> "好"
"你說好笑不好笑"[3]
=> "笑"

這樣取值有點辛苦,如果需要的字元是更長且連續的,可以這樣寫:

$ irb
"你說好笑不好笑"[2..3]
=> "好笑"

"你說好笑不好笑"[2...4]
=> "好笑"

"你說好笑不好笑"[-3..-1]
=> "不好笑"

範圍有「二個點」..跟「三個點」...這兩種寫法,取到的結果值不同如上例,如果要取的值是倒數的位置,用負數也是可以的。

$ irb
(1..9).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

[*1..9]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

不只是數字,字串也可施展範圍技:

$ irb
('a'..'z').to_a

=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

如同昨天介紹的 to_a 這裡的 a 就是指 Array


Array 陣列

在電腦科學中,陣列資料結構(英語:array data structure),簡稱陣列(英語:Array),是由相同類型的元素(element)的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引(index)可以計算出該元素對應的儲存位址。

陣列裡可以放數字、字串、甚至陣列也可以,建立陣列有幾個方法:

  1. Array.new
  2. 直接穿上中括號 []
$ irb
Array.new                 # 製作一個空陣列
=> []

[].<< 2                   # << 也是方法,將元素塞進陣列
=> [2]

Array.new(3, [1, 2, 3])   # 需要3組數字的集合

=> => [[1, 2, 3], [1, 2, 3], [1, 2, 3]]

也可以帶變數進來:

$ irb
Morgan_say = 3000
Array.new(Morgan_say, "I love you")    # Morgan說「 我愛你3000次 」

=> ["I love you", "I love you", "I love you",...略]

去頭去尾進入室內請脫帽脫鞋

$ irb
suit = ["hat", "t-shirt", "jeans", "shoes"]  

suit.shift        # 去掉第一個元素
=> "hat"

suit.pop          # 去掉最後一個元素
=> "shoes"           

suit
=> ["t-shirt", "jeans"]

下期預告~

如果想對範圍或陣列裡的元素一次性的操作,例如:把範圍內的元素變成兩倍,並且用 array 呈現:

$ irb
array = []
(1..3).each {|number| array << number * 2} 

array
=> [2, 4, 6]

明天見~

此文同步刊登於CJ-Han的網站


上一篇
Day 2 - 數字與字串
下一篇
Day 4 - 迴圈與迭代
系列文
Ruby 研究 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言