Rubyの多重代入 ,(カンマ)で区切られた代入の挙動

こんなやつが出てきて挙動が分からず困っていたら多重代入というやつらしい。

a, b = Hoge.moge

多重代入についてまとめます。

左辺が1つで右辺が複数の場合

配列に変換される

a = 1, 2 #=> [1, 2]
a #=> [1, 2]

左辺、右辺ともに2つの場合

左辺の各変数に右辺の各要素が代入される

a, b = 1, 2 #=> [1, 2]
a #=> 1
b #=> 2

左辺の数が多い場合

左辺の残りにnilが代入される

a, b = 1 #=> 1
a #=> 1
b #=> nil

右辺の数が多い場合

余った要素は無視される

a, b = 1, 2, 3 #=> [1, 2, 3]
a #=> 1
b #=> 2

他にも色んなパターンや使い方があるみたいですがこのへんで。。。