search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

[ハッシュ]**を使ったハッシュの展開

技術書でハッシュについての学習をする中で、
ハッシュの展開方法を学んだのでまとめてみました。


#下準備として、rails consoleのsandbox環境を開く
rails c --sandbox
#ズームインのアイドル、そらじろうの特徴をハッシュにして、変数sorajiroに代入

pry(main)> sorajiro = { color: 'blue', type: 'animal', nationality: 'japan' }
=> {:color=>"blue", :type=>"animal", :nationality=>"japan"}
#sorajiroのキーと値を**で展開させる

pry(main)> { sex: 'male',**sorajiro }
=> {:sex=>"male", :color=>"blue", :type=>"animal", :nationality=>"japan"}

ハッシュsorajiroを展開することができた。

#sorajiroのキーと値を**_なし_で展開させる

pry(main)> { sex: 'male',**sorajiro }
SyntaxError: unexpected '}', expecting =>
{ sex: 'male',sorajiro }

                       ^

上記のように** を付けない場合は、構文エラーになります。

**の代わりにmergeメソッドを使っても同じ結果になる

pry(main)> sorajiro= { color: 'blue', type: 'animal', nationality: 'japan' }
{sex: 'male'}.merge(sorajiro)

Rubyの式展開の形は、#{sorajiro}の文字列の展開しか知らなかったので、一つ知見が増えました。

プロを目指す人のためのRuby入門

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?