変数へ多重代入を行う

変数にオブジェクトを代入する場合に、複数の変数にまとめてオブジェクトを代入することができます。ここでは Ruby で変数へ多重代入を行う方法について解説します。

(Last modified: )

変数へ多重代入を行う

複数の変数にオブジェクトを代入する場合、「変数=オブジェクト」の形式で一つ一つ実行する必要があります。

v1 = "東京都"
v2 = "大阪府"
v3 = "福岡県"

このような複数の変数にそれぞれオブジェクトを代入する場合、多重代入という構文を利用できます。

変数1, 変数2, 変数3, ... = 式1, 式2, 式3, ...

代入演算子 = の左辺に代入される変数をカンマで区切って並べて記述します。そして右辺には左辺に記述した変数に代入するオブジェクトや式などをカンマで区切って並べて記述します。この場合、右辺に記述された式を評価した値が左辺に記述された変数に順に代入されていきます。変数 1 には式 1 が、変数 2には式 2 が、といった感じです。

先ほどの例を多重代入を使って記述すると次のようになります。

v1, v2, v3 = "東京都", "大阪府", "福岡県"

また多重代入の右辺には配列オブジェクトを指定することもできます。

変数1, 変数2, 変数3, ... = [要素1, 要素2, 要素3, ...]

この場合は右辺の配列オブジェクトの各要素が順に左辺に記述された変数に順に代入されていきます。(配列については「配列」を参照して下さい)。

先ほどの例を配列を使った記述すると次のようになります。

v1, v2, v3 = ["東京都", "大阪部", "福岡県"]

なお左辺に記述した変数の数より右辺に記述したオブジェクトの数が少ない場合、代入されるオブジェクトが無い変数には nil が代入されます。

v1, v2, v3 = "東京都", "大阪部"

上記の場合、変数 v3 には代入されるオブジェクトが記述されていませんので nil が代入されます。

サンプルコード

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

# encoding: UTF-8

v1, v2, v3, v4 = "東京都", "大阪府", "福岡県"

puts(v1)
puts(v2)
puts(v3)
puts(v4)

下記のように実行して下さい。

多重代入

-- --

Ruby で変数へ多重代入を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。