質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

3632閲覧

Rubyのhash updateメソッドについて

abab7200

総合スコア120

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2017/07/17 04:10

ruby (ver2.0)rubyのhash update(merge!)の動作について動作が理解できないのでどなたかご解説いただければと存じます

参考コード

a={"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga"} b={"Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"} p a.update(b) #参考コード返り値:{"Foo"=>"hoge", "Bar"=>"piyo", "Baz"=>"fuga"}

updateはレシーバーのhashへ、引数のhashを追加すると理解しているので、
想定として、返り値が下記になると思っていたのですが,違うので
ご解説いただければ存じます。

{"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga","Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動作というより、そもそもHashの理解が違います。Arrayとは違います。
試しにirbなどで下記のコードを実行してみてください。

ruby

1p {"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga","Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"} 2p {"Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga","Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga"}

投稿2017/07/17 04:44

NCC1701

総合スコア1680

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abab7200

2017/07/17 05:10

NCC1701様  早急な回答ありがとうございます。 頂いたコードを実行すると、エラーが発生します。 動作を拝見するに、hashでは重複するキーが利用できないという事なのでしょうか? また、hash update(merge!)でキーが重複する場合 引数の内容に上書きされると言うことでしょうか?
NCC1701

2017/07/17 05:26

そうです。そもそもキーを重複させる意味がありませんし、重複していたら困ります。ハッシュとか辞書型とか連想配列とかは、およそ同じ目的の仕組みです。(エラーの発生は再現できないので不明です。)
abab7200

2017/07/17 05:37

NCC1701様 理解しました、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問