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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

8562閲覧

Rubyにてハッシュにネストしたハッシュを追加する方法

dongw

総合スコア119

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/07/03 11:51

タイトルの通りです。
既存のハッシュに新しくキーとバリューを追加する方法はstoreがあると思います。
しかしこれでネストしたハッシュを追加する事が出来ませんでした。

イメージとしては
hash = {aaa: bbb}に
hash.store("ccc": ("ddd":("eee":"fff")))
こんな事がしたかったです。
何か方法はありますでしょうか?

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

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

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

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

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

guest

回答2

0

storeは引数を2つ取り、1つ目がキーで2つ目がそのキーに対応する値です。

Ruby

1hash.store(:ccc, (ddd:(eee:"fff")))

ですね。

余談ですが、シンボルと文字列の区別は付いていますでしょうか?
{"foo": "bar"}{:foo => "bar"}{foo: "bar"}と同じであり、{"foo" => "bar"}とは異なります。

投稿2017/07/03 12:56

otn

総合スコア84503

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

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

dongw

2017/07/10 12:07

回答ありがとうございます。 hash.store(:ccc, (ddd:(eee:"fff"))) こちらの記述ではsyntaxerrorが出てしまいましたが、カンマが重要だということが分かりました。 シンボルと文字列の区別ですが、 {"foo": "bar"} これは文字列のキーと文字列の値になると勘違いしてました。 この書き方だとキーはシンボルになるのですね、勉強になりました。
otn

2017/07/10 12:26

> こちらの記述ではsyntaxerrorが出てしまいましたが、 失礼しました。{ } のタイプミスです。 > この書き方だとキーはシンボルになるのですね、勉強になりました。 ハッシュは、{ キー => 値 } と書くのが本来で、キーがシンボルの時だけコロンを使った書き方が出来るようになりました。
guest

0

ベストアンサー

えっ
普通にできませんか?
hash = {aaa: 'bbb'}
hash.store("ccc", {"ddd":{"eee":"fff"}})
hash#=>{:aaa=>"bbb", "ccc"=>{:ddd=>{:eee=>"fff"}}}

投稿2017/07/03 12:03

moke

総合スコア2241

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

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

dongw

2017/07/10 12:04

回答ありがとうございます。 出来ました! キーの後にカンマを入れておらず、普通のハッシュの形にしてしまったのでうまく行かなかったようでした。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問