Ruby - 陣列



Ruby 陣列是有序的,整數索引的任何物件的集合。陣列中的每個元素都與一個索引相關聯,並由該索引引用。

陣列索引從 0 開始,就像在 C 或 Java 中一樣。負索引被認為相對於陣列的末尾——也就是說,索引 -1 指示陣列的最後一個元素,-2 是陣列的倒數第二個元素,依此類推。

Ruby 陣列可以儲存諸如字串、整數、Fixnum、雜湊表、符號,甚至其他陣列物件等物件。Ruby 陣列不像其他語言中的陣列那樣嚴格。在向 Ruby 陣列新增元素時,它們會自動增長。

建立陣列

有許多方法可以建立或初始化陣列。一種方法是使用 new 類方法 -

names = Array.new

您可以在建立陣列時設定陣列的大小 -

names = Array.new(20)

陣列 names 現在有 20 個元素的大小或長度。您可以使用 size 或 length 方法返回陣列的大小 -

#!/usr/bin/ruby

names = Array.new(20)
puts names.size  # This returns 20
puts names.length # This also returns 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]

Array 還有另一種方法,[]。它的工作原理如下 -

nums = Array.[](1, 2, 3, 4,5)

陣列建立的另一種形式如下 -

nums = Array[1, 2, 3, 4,5]

核心 Ruby 中提供的 Kernel 模組有一個 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 打包指令

示例

嘗試以下示例以打包各種資料。

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
廣告

© . All rights reserved.