配列クラス.配列の要素は任意のrubyオブジェクトです.配列は一 般的には配列式:
で行なわれます.[1, 2, 3]
Object
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
配列の連結を行います.self
とotherの
両方の配列の内容を繋げた新しい配列を返します.
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を配列の先頭に追加します.