ruby配列


配列クラス.配列の要素は、任意のRubyオブジェクトであってもよい.詳細は配列式を参照してください.
スーパークラスObject(物件)
含まれるモジュールEnumerable可挙列モジュール
方法
self[nth]
nth番目の配列要素を取得します.インデックスは0から始まります.nthが負の値の場合、末尾から計算されます(最後の要素のインデックスは-1).nth番目の要素が存在しない場合はnilを返します.
self[start,
length]
startからlength個の要素を含む配列を返します.startが負の値の場合、末尾から計算されます(最後の要素のインデックスは-1).lengthがstartから算出した配列の残りの長さを超えると、超えた部分は無視されます.lengthが負の値の場合はnilを返します.
self[nth]=val
配列のnth番目の要素の値をvalに変更します.nthが配列範囲を超えた場合、配列は自動的に延長されます.延長された部分はnilに初期化されます.
valを返します.
self[start,
length]=
val
配列内のstartからlength個の要素を計算する内容をvalに置き換えます.valが配列でない場合、val.to_が呼び出されます.aryまたは[val]を使用して置き換えます.valを返します.
ary = [0, 1, 2, 3]
ary[1, 2] = ["a", "b", "c"]
p ary                 # => [0, "a", "b", "c", 3]
ary[2, 1] = 99
p ary                 # => [0, "a", 99, "c", 3]
ary[1, 0] = ["     "]
p ary                 # => [0, "     ", "a", 99, "c", 3]

self +
other
selfとotherの内容を連結し、新しい配列を返します.otherが配列でない場合はotherを使用する.to_aryの戻り値.戻り値が配列でない場合、TypeError(異常:タイプエラー)異常が放出されます.
a = [1, 2]
b = [8, 9]
p a + b               # => [1, 2, 8, 9]
p a                   # => [1, 2] (  )
p b                   # => [8, 9] (    )

self -
other
減算処理.すべてのself要素を含むが、すべてのother要素を減算する新しい配列を返します.
self &
other
交差操作.selfとotherの共有要素を含む配列を返します.重複する要素を除去します.
self |
other
並列処理.selfとotherのすべての要素に含まれる配列を返します.重複する要素を除去します.
self <=>
other
<=>を使用してselfとotherの要素を順次比較し、selfがotherより大きい場合は1、selfがotherに等しい場合は0、selfがotherより小さい場合は-1を返します.各要素が等しく、いずれかの配列が末尾に達した場合、短い配列は小さいと判定されます.
self ==
other
==を使用して各要素を順番に比較し、すべての要素が等しい場合はtrueを返します.
clear
配列を空にし、すべての要素を削除します.selfを返します.
ary = [1, 2]
ary.clear
p ary                 # => []

clone
dup
呼び出し元と同じ内容の配列を返します.cloneは1つの配列、凍結状態、特殊な方法などを完全にコピーし、dupはオブジェクトの内容をコピーするだけです.cloneもdupもメソッドや要素自体をコピーしません.
compact!
nil要素以外のすべてのself要素を含む配列を返します.compact! 破壊的な更新を実行し、変更に成功したらselfを返し、そうでなければnilを返します.
ary = [1, nil, 2, nil, 3, nil]
p ary.compact         # => [1, 2, 3]
p ary                 # => [1, nil, 2, nil, 3, nil]
ary.compact!
p ary                 # => [1, 2, 3]
p ary.compact!        # => nil

concat(
other)
otherをselfに接続します(破壊操作).selfを返します.
array = [1, 2]
a = [3, 4]
array.concat a
p array               # => [1, 2, 3, 4]
p a                   # => [3, 4] #     

delete(
val)
delete(
val) { ... }
val(==)に等しいすべての要素を削除します.任意の要素がvalと等しい場合は、valを返します.
valに等しい要素がない場合はnilを返します.ブロックを指定すると、ブロックが計算され、計算結果が返されます.
array = [1, 2, 3, 2, 1]
p array.delete(2)     # => 2
p array               # => [1, 3, 1]

#      nil        ,                  
ary = [nil,nil,nil]
p ary.delete(nil)     # => nil
p ary                 # => []
p ary.delete(nil)     # => nil

delete_at(
pos)
posの位置にある要素を削除し、削除された要素を返します.posが配列範囲を超えている場合はnilを返します.
array = [0, 1, 2, 3, 4]
array.delete_at 2
p array               # => [0, 1, 3, 4]

each {|
item| .... }
各要素を順に使用して、ブロックを計算します.selfを返します.
#      1、2、3
[1, 2, 3].each do |i|
  puts i
end

each_index {|
index| .... }
各要素のインデックスに基づいて、ブロックを計算します.次の文と同じです.
(0 ... ary.size).each {|index| .... }

selfを返します.
empty?
要素数が0の場合はtrueを返します.
include?(
val)
配列のいずれかの要素がvalに等しい場合(==)、trueを返します.
index(
val)
配列の最初のval(==を使用)に等しい要素のインデックスを返します.等しい要素が見つからない場合はnilを返します.
insert(
nth, [
val[,
val2 ...]])
nth番目の要素の前に2番目のパラメータと後ろのすべてのパラメータを挿入します.selfを返します.次のように定義します.
class Array
  def insert( n, *vals )
    self[n, 0] = vals
    self
  end
end
ary = ["foo", "bar", "baz"]
ary.insert 2, 'a', 'b'
p ary                  # => ["foo", "bar", "a", "b", "baz"]

valのパラメータが指定されていない場合は、何もしません.
length
size
配列の長さを返します.配列が空の場合は、0を返します.
nitems
nil以外の要素の数を返します.
pop
最後の要素を削除して返します.配列が空の場合はnilを返します.
array = [1, [2, 3], 4]
p array.pop            # => 4
p array.pop            # => [2, 3]
p array                # => [1]

p array.pop            # => 1
p array.pop            # => nil
p array                # => []

push(
obj1[,
obj2 ...])
obj 1、obj 2...配列の末尾を挿入します.
selfを返します.
array = [1, 2, 3]
array.push 4
array.push [5, 6]
array.push 7, 8
p array                # => [1, 2, 3, 4, [5, 6], 7, 8]

reverse
reverse!
reverseは、元の配列要素の順序とは逆のシン配列を返します.reverse! 破壊的な更新を実行します.
reverseはいつも新しい配列を返しますが、reverse!selfを返します.
shift
最初の要素を削除して返します.残りの要素は自動的に空席を前方に補充します.配列が空の場合はnilを返します.
sort
sort!
sort {|
a,
b| ... }
sort! {|
a,
b| ... }
配列の内容をソートします.ブロック呼び出しがある場合、2つのパラメータがブロックに渡され、ブロック計算の結果でソートされます.ブロックを持たない場合は、<=>を使用して要素を比較します.sort! 配列要素を破壊的に更新します.
sortは新しい、並べ替えられた配列を返し、sort!必ずselfに戻ります.
uniq
uniq!
uniqは、重複要素を除去する新しい配列を返します.残りの要素は自動的に空席を前方に補充します.uniq! 近接行は破壊的に削除され、削除に成功した場合はselfに戻り、そうでなければnilに戻ります.
unshift(
obj1[,
obj2 ...])
obj 1、obj 2...配列の頭部に順番に挿入します.
selfを返します.