【Ruby】多重代入

ABOUTこの記事をかいた人

気になること&知らないことをひたすらググることを得意としています。このブログでは最近気になったことを中心に記事を書いていきます。記事には間違った情報を書かないように細心の注意を払っていますが、もし誤りがあった場合はコメントやお問い合わせフォームからご指摘いただければ幸いです。

突然ですが、変数「x」に1を、変数「y」に2を代入したい場合、あなたならどのようにして代入しますか?

普通に代入する場合は↓のように1つずつ代入していきます。

しかし、これでは少しめんどくさいので、複数の値を一気に代入したい場合には多重代入を行った方が楽です。例としては↓のような感じになります。

1
2

これで1行の式だけで複数の値を代入できるようになります。

右辺の要素数が多い場合は?

右辺の要素数が左辺よりも多い場合では余った「3」はスルーされ、代入は行われません。

1
2

左辺の変数が多い場合は?

左辺の数が右辺よりも多い場合は、空の値という意味の「nil」が仮に代入されています。

1
2
nil

右辺のすべての要素を代入

右辺の要素が左辺より多くても余った値をまとめて代入することができます。

1
2
[3, 4, 5]

あまったデータの受け取りを行いたい変数の前に「*」を挿入します。するとその変数に配列でまとめてデータが代入されます。

これを応用すると、下記のように普通に配列を作れたりもします。

[1, 2, 3, 4, 5]

配列をそれぞれの変数に代入する

配列の要素を複数の変数に代入したいような場合にはかなり多重代入は使えます。↓のような配列があったとします。

この配列を一つ一つ変数に代入するには下記のような書き方をしなくてはなりません。
1
2
3

上記のようにいちいち値を代入するのはめんどくさいので、多重代入を利用すると↓のように一気に代入を行うことができます。

1
2
3

ちなみに左辺や右辺が多い場合は先程と同じような代入のされ方になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

気になること&知らないことをひたすらググることを得意としています。このブログでは最近気になったことを中心に記事を書いていきます。記事には間違った情報を書かないように細心の注意を払っていますが、もし誤りがあった場合はコメントやお問い合わせフォームからご指摘いただければ幸いです。