要素に別の配列オブジェクトを代入

広告

配列の要素には任意のオブジェクトを代入できますので、他の配列オブジェクトも代入することが出来ます。

例として名前と年齢の配列を、人数分だけ持つ配列を作成してみます。

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

配列には3つの要素が含まれており、それぞれ「["佐藤", 20]」、「["山田", 28]」、「["加藤", 17]」の配列オブジェクトが代入されています。各要素を取り出してみます。

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

取り出した各要素は配列オブジェクトです。その為、さらに要素を取り出すことが出来ます。

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

personal1 = personals[0]
name1 = personal1[0]
old1 = personal1[1]

personal2 = personals[1]
name2 = personal2[0]
old2 = personal2[1]

personal3 = personals[2]
name3 = personal3[0]
old3 = personal3[1]

丁寧にかけば上記のようになりますが、次のように記述することも出来ます。

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

name1 = personals[0][0]
old1 = personals[0][1]

name2 = personals[1][0]
old2 = personals[1][1]

name3 = personals[2][0]
old3 = personals[2][1]

このように配列の要素に他の配列オブジェクトを代入することが出来ます。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test7-1.rb

#! ruby -Ku
require "kconv"

personals = [["佐藤", 20], ["山田", 28], ["加藤", 17]]
for array in personals do
  print(Kconv.tosjis("名前:" + array[0] + "¥n"))
  print(Kconv.tosjis("年齢:"), array[1], "¥n")
end

上記のプログラムを「test7-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

要素に別の配列オブジェクトを代入

( Written by Tatsuo Ikura )