![]() |
VOOZH | about |
Ruby 數組是任何對象的有序整數索引集合。數組中的每個元素都與一個索引相關,並可通過索引進行獲取。
數組的索引從 0 開始,這與 C 或 Java 中一樣。一個負數的索相對於數組的末尾計數的,也就是說,索引為 -1 表示數組的最後一個元素,-2 表示數組中的倒數第二個元素,依此類推。
Ruby 數組可存儲諸如 String、 Integer、 Fixnum、 Hash、 Symbol 等對象,甚至可以是其他 Array 對象。
Ruby 數組不需要指定大小,當向數組添加元素時,Ruby 數組會自動增長。
有多種方式創建或初始化數組。一種方式是通過 new 類方法:
names = Array.new
您可以在創建數組的同時設置數組的大小:
names = Array.new(20)
數組 names 的大小或長度為 20 個元素。您可以使用 size 或 length 方法返回數組的大小:
#!/usr/bin/ruby names = Array.new(20)puts names.size # 返回 20puts names.length # 返回 20嘗試一下 »
以上實例運行輸出結果為:
20 20
您可以給數組中的每個元素賦值,如下所示:
#!/usr/bin/ruby names = Array.new(4, "mac") puts "#{names}"嘗試一下 »
以上實例運行輸出結果為:
["mac", "mac", "mac", "mac"]
您也可以使用帶有 new 的塊,每個元素使用塊中的計算結果來填充:
#!/usr/bin/ruby nums = Array.new(10) { |e| e = e * 2 } puts "#{nums}"嘗試一下 »
以上實例運行輸出結果為:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
數組還有另一種方法,,如下所示:
nums = Array.(1, 2, 3, 45)
數組創建的另一種形式如下所示:
nums = Array[1, 2, 3, 45]
在 Ruby 核心模塊中可以有一個只接收單個參數的 Array 方法,該方法使用一個範圍作為參數來創建一個數字數組:
#!/usr/bin/ruby digits = Array(0..9) puts "#{digits}"
以上實例運行輸出結果為:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我們需要有一個 Array 對象的實例來調用 Array 方法。下面是創建 Array 對象實例的方式:
Array.(...) [or] Array[...] [or] [...]
這將返回一個使用給定對象進行填充的新數組。現在,使用創建的對象,我們可以調用任意可用的方法。例如:
#!/usr/bin/ruby digits = Array(0..9) num = digits.at(6) puts "#{num}"
以上實例運行輸出結果為:
6
下面是公共的數組方法(假設 array 是一個 Array 對象):
下表列出了方法 Array#pack 的壓縮指令。
實例
嘗試下面的實例,壓縮各種數據。
a = [ "a", "b", "c" ]n = [ 65, 66, 67 ]puts a.pack("A3A3A3") #=> "a b c "puts a.pack("a3a3a3") #=> "a\000\000b\000\000c\000\000"puts n.pack("ccc") #=> "ABC"
以上實例運行輸出結果為:
a b c abc ABC