- - - 目次

Array

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

[1, 2, 3]
で生成されます.

スーパークラス:

Object

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

Enumerable

クラスメソッド:

Array[item...]

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

new([size[, val]])

配列を生成します.sizeを指定したときにはその大き さの配列を生成します.valを指定したときには内容を その値で初期化します.valのデフォルトはnil です.

メソッド:

self[nth]

nth番目の要素を返します.先頭の要素が0番目になり ます.nthの値が負の時には末尾からのインデックスと 見倣します(末尾の要素が -1 番目).nth番目の要素が 存在しない時にはnilを返します.

self[start..end]

start番目の要素からend番目の要素までの 部分配列を返します.startの値が負の時には末尾からのインデックスと 見倣します(末尾の要素が -1 番目).startの値が配列の範囲に 収まらない場合nilを返します.endの値が 配列の長さを越える時には,越えた分の長さは無視されます. また,範囲の始点が終点よりも大きい時にはnilを返します.

self[start, length]

start番目からlength個の要素を含 む部分配列を返します.startの値が負の時には末尾からのインデックスと 見倣します(末尾の要素が -1 番目).lengthstart 番目からの配列の長さより長い時には,越えた分の長さは無視され ます.lengthが負の時にはnilを返します.

self[nth] = val

nth番目の要素をvalに設定します. nthが配列の範囲を越える時には配列が自動的に拡張さ れます.拡張されたものの代入されなかった要素は nil に初期化されます.

self[start..end] = val

start番目の要素からend番目の要素までを 配列valの内容に置換します.valの値が配 列でないときにはto_aメソッドを使って配列に変換 します.valの要素の数の方が多い時には,後ろの要素 がずれます.

self[start, length] = val

start番目からlength個の要素を配列 valの内容で置き換えます.valが配列でな いときにはto_aメソッドを使って配列に変換します. valの要素の数の方が多い時には,後ろの要素がずれま す.ですから,lengthが0の時にはインデックス直前の 位置への挿入になります.

例:

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

この場合arrayには[obj1, obj2]が追加されます.

self <=> other

selfotherの各要素をそれぞれ順に <=>で比較して,selfが大きい 時に正,等しい時に0,小さい時に負の整数を返します.各要素が 等しいまま,一方だけ配列の末尾に達した時は,より短い配列の方 が大きいとみなします.

assoc(key)

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

a = [[1,2],[2,4],[3,6]]
a.assoc(2)		# => [2, 4]
clear

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

concat(other)

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

compact
compact!

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

delete(val)
delete(val){ ... }

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

delete_at(pos)

posで指定された位置にある要素を取り除きます.取り 除かれた要素を返します.取り除く要素が存在しない時には nilを返します.

delete_if {|x|...}
reject!{|x|...}

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

clone
dup

レシーバと同じ内容を持つ新しい配列を返します.フリーズした配 列のcloneは同様にフリーズされた配列を返しますが, dupは内容の等しいフリーズされていない配列を返し ます.

each {...}

各要素に対してブロックを評価します.

each_index {...}

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

empty?

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

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

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

filter{|item| ..}

配列の各要素内容を,その要素を引数にしてブロックを評価した値 に置き換えます.

flatten
flatten!

ネストした配列を平滑化します.flatten!は配列を 破壊的に平滑化しますが,配列がネストしていないときには nilを返します.

freeze

配列の内容の変更を禁止します.

frozen?

配列の内容の更新が禁止されている時真を返します.

include?(val)

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

index(val)

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

indexes(index_1,..., index_n)
indices(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 long
m
base64された文字列
n
ネットワークバイトオーダーのshort
N
ネットワークバイトオーダーのlong
v
"VAX"バイトオーダー(リトルエンディアン)のshort
V
"VAX"バイトオーダー(リトルエンディアン)のlong
f
単精度浮動小数点数(機種依存)
d
倍精度浮動小数点数(機種依存)
p
ナル終端の文字列へのポインタ
P
構造体(固定長文字列)へのポインタ
u
uuencodedされた文字列
x
ナルバイト
X
1バイト後退
@
絶対位置への移動
pop

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

push(obj...)

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

rassoc(value)

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

a = [[1,2],[2,4],[3,6]]
a.rassoc(2)		# => [1, 2]
replace(other)

配列の内容をotherの内容で置き換えます.

reverse
reverse!

reverseは全ての要素を逆順に並べた配列を返します. reverse!は配列の要素を逆順に(破壊的に)並べ替えます.

reverse_each {...}

各要素に対して逆順にブロックを評価します.

rindex(val)

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

shift

配列の先頭の要素を取り除き,取り除かれた要素を返します.残り の要素はひとつずつ前に詰められます.空配列に対しては nilを返します.

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

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

uniq
uniq!

配列から重複した要素を取り除きます.取り除かれた要素の部分は 前に詰められます.uniq!は削除を破壊的に行います.

unshift(obj)

objを配列の先頭に追加します.各要素はひとつずつ後 ろにずれます.


- - - 目次

matz@netlab.co.jp