- - - 目次

Array

配列クラス.配列の要素は任意のrubyオブジェクトです.配列は一 般的には配列式:

[1, 2, 3]
で行なわれます.

スーパークラス:

Object

インクルードしているモジュール:

Enumerable

クラスメソッド:

Array[item...]

引数を要素として持つ配列を生成します.

new([size])

あらかじめ内部的な領域をsize個分だけ確保して配 列を生成します.sizeを省略した場合のデフォルトは 16です.

メソッド:

self[nth]

nth番目の要素を取り出します.

self[start..end]

start番目の要素からend番目の要素までの 部分配列を返します.部分配列は両端の要素を含みます.

self[start, length]

start番目からlength個の要素を含 む部分配列を返します.

self[nth] = val

nth番目の要素をvalに変更します.

self[start..end] = val

start番目の要素からend番目の要素までを valに変更に変更します.valの値は配列に 変換されます.

self[start, length] = val

start番目からlength個の要素を valに置き換えます.valは配列に変換され ます.

例:

ary = [1, 2, 3, 4, 5]
ary[0..2] = [0, 0] # 配列の内容は [0, 0, 4, 5]
ary[1, 0] = [7]    # 配列の内容は [0, 7, 0, 4, 5]

self + other

配列の連結を行います.selfotherの 両方の配列の内容を繋げた新しい配列を返します.

self * times

配列の繰り返し.

self - other

集合の差演算.selfからotherの要素を 取り除いた内容の新しい配列を返します.重複する要素取り除かれ ます.

self & other

集合の積演算.両方の配列に含まれる要素からなる新しい配列を返 します.重複する要素は取り除かれます.

self | other

集合の和演算.両方の配列にいずれかに含まれる要素を全て含む新し い配列を返します.重複する要素は取り除かれます.

self << obj

objを配列の末尾に追加します.このメソッドは配列そのものを返 すので,以下のように連鎖できます.

array << obj1 << obj2

assoc(key)

配列の配列を検索して,その第一要素がkeyに等しいもの を返します.比較は==演算子を使って行われます.

clear

配列の大きさを0にします.

concat(other)

配列otherの要素を配列の末尾に(破壊的に)追加します. otherが配列でない時には変換されます.

compact
compact!

配列からnilの要素を取り除きます. compact!は削除を破壊的に行います.

delete(val)

配列から要素valを削除します.イテレータとして呼び 出された時には,削除する要素がなかった時にイテレータブロック を評価します.

delete_at(pos)

posで指定された位置にある要素を取り除きます.取り 除かれた要素を返します.

delete_if {...}

要素に対してブロックを評価し,ブロックが真を返した要素を削除 します.

each {...}

各要素に対してイテレータブロックを評価します.

each_index {...}

各要素のインデックスに対してイテレータブロックを評価します. つまり,(0..ary.size).each {}と同じです.

empty?

配列が空の時真を返します.

fill(val)
fill(val, start[, length])
fill(val, start..end)

配列(の指定された部分)の要素の値をvalに設定します. 2番めの形式でlengthが省略された時は配列の終りまで の長さを意味します.指定された部分配列が元の配列の範囲を越え る時は自動的に拡張されます.

include?(val)

配列がvalと等しい要素を持つ時に真を返します.

index(val)

valと等しい最初の要素の位置を返します.等しい要素 がひとつもなかった時にはnilを返します.

indexes(index_1,..., index_n)

各引数の値をインデックスとする要素の配列を返します.

join([sep])

配列の要素をsepを間に挟んで連結した文字列を返しま す.sep各が省略された場合には変数$, の値が使われます.

length
size

配列の長さを返します.

nitems

nilでない要素の数を返します.

pack(template)

配列の内容をtemplateで指定された文字列にしたがっ て,バイナリとしてパックした文字列を返します.テンプレートは 型指定文字列とその長さ(省略時は1)を並べたものです.長さとし て*が指定された時は「残りのデータ全て」の長さを 表します.型指定文字は以下の通りです.

a
ASCII文字列(nullを詰める)
A
ASCII文字列(スペースを詰める)
b
ビットストリング(下位ビットから上位ビット)
B
ビットストリング(上位ビットから下位ビット)
h
16進文字列(下位ニブルが先)
H
16進文字列(上位ニブルが先)
c
char
C
unsigned char
s
short
S
unsigned short
i
int
I
unsigned int
l
long
L
unsigned int
n
ネットワークバイトオーダーのshort
N
ネットワークバイトオーダーのlong
v
"VAX"バイトオーダー(リトルエンディアン)のshort
V
"VAX"バイトオーダー(リトルエンディアン)のlong
f
単精度浮動小数点数(機種依存)
d
倍精度浮動小数点数(機種依存)
u
uuencodedされた文字列
x
ナルバイト
X
1バイト後退
@
絶対位置への移動

pop

配列の末尾の要素を取り除いて,それを返します.要素がない時に はnilを返します.

push(obj...)

objを配列の末尾に追加します.

rassoc(value)

配列の配列を検索して,その第一要素がvalueに等しいもの を返します.比較は==演算子を使って行われます.

reverse!

配列の要素を逆順に(破壊的に)並べ替えます.

reverse_each

各要素に対して逆順にイテレータブロックを評価します.

shift

配列の先頭の要素を取り除いて,それを返します.残りの要素はひ とつずつ前に詰められます.

sort
sort!
sort {|a, b|...}
sort! {|a, b|...}

配列の内容をソートします.イテレータとして呼び出された時には イテレータブロックを2引数を与えて評価し,その結果で比較しま す.イテレータブロックがない時には<=>演 算子を使って比較します.sortはソートされた新し い配列を返し,sort!は配列の内容をその場でソート します.

unshift(obj)

objを配列の先頭に追加します.


- - - 目次

matz@caelum.co.jp