LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について4

配列


[オブジェクト1, オブジェクト2, ...]
array = [2005, 2006, 2007, 2008]

array1 = 2005
array2 = 2006
array3 = 2007
array4 = 2008

array = ["山田", "太郎", 1992, 12, 31, "男性"]
配列オブジェクト[インデックス]


<配列の要素>

array = [2005, 2006, 2007, 2008]

print(array[0])
year = array[1] ← また配列の要素の変更もできる

atメソッド


配列オブジェクト.at(pos)

array = [2005, 2006, 2007, 2008]

print(array[0])
print(array.at(0))

Arrayクラス

Array[item,...]
array = Array[2005, 2006, 2007, 2008]

4つの要素を持ち、それぞれ数値オブジェクトが代入された配列オブジェクトが作成されます。

Array.new

Array.new([size[, val]])

array1 = Array.new(3)
array2 = Array.new



素数だけを指定した場合、各要素には初期値としてのオブジェクトが代入されていない

array1 = [nil, nil, nil]
要素に代入

array = Array.new(3, "Red")

array = [Red, Red , Red]になる


Array.new(size) {|index| ... }

array = Array.new(3){"Red"}

Array.new(ary)

array = ["Red", "Red"]
newarray = Array.new(array)


例:

array1 = Array[1, 2]
print(array1[0], "\n")
print(array1[1], "\n")

array2 = Array.new(2, "Red")
print(array2[0], "\n")
print(array2[1], "\n")

array3 = Array.new(2){"Red"}
print(array3[0], "\n")
print(array3[1], "\n")

array4 = Array.new(array1)
print(array4[0], "\n")
print(array4[1], "\n")



出力

1
2
Red
Red
Red
Red
1
2

要素へのオブジェクトの代入


配列オブジェクト[インデックス] = オブジェクト

例:

array = Array["赤", "あお", "緑"]
print array[0] + "\n"
print array[1] + "\n"
print array[2] + "\n"
array[1] = "緑"
array[2] = "金"
print array[0] + "\n"
print array[1] + "\n"
print array[2] + "\n"



出力


あお





配列のサイズの取得と新しい要素の追加


配列オブジェクト.length

例:

array = Array["赤", "青", "緑"]
print(array.length)



出力 3




またオブジェクトが代入されていない要素は除外する場合にnitemsを使う

配列オブジェクト.nitems

例:

array = Array["赤", nil, "緑"]
print(array.length)
print(array.nitems)

出力




配列サイズの拡大


array = Array["赤", "青", "緑"]
array[3] = "黄"
array = Array["赤", "青", "緑"]
array[5] = "黄"

「赤」「青」「緑」「nil」「nil」「黄」
print array[]

配列に対する繰り返し


<for文>

for 変数 in 配列オブジェクト do
実行する処理1
実行する処理2
end


例:

array = Array["赤", "青", "緑"]
for var in array do
  print("Color = " + var + "\n")
end



出力

Color = 赤
Color = 青
Color = 緑




<eachメソッド

配列オブジェクト.each{|変数|
実行する処理1
実行する処理2
}

例:

array = Array["赤", "青", "緑"]
array.each{|var|
  print("Color = " + var + "\n")
}



出力

Color = 赤
Color = 青
Color = 緑

要素に別の配列の要素を代入

personals = [["佐藤", 20], ["山田", 28], ["加藤", 17]]
personal1 = personals[0]
personal2 = personals[1]
personal3 = personals[2]


多次元配列


例:

personals = [["佐藤", 20], ["山田", 28], ["加藤", 17]]
print personals[0][1]



出力

20