2009-04-14 6 views
1

このコードはもちろん、作品:Rubyのハッシュの初期化:この気持ちは可能ですか?

@x = { :all => { :x => 1, :y => 2 } } 

しかし、これはしません:

@x = { :abc, :all => { :x => 1, :y => 2 } } 

は、私がここでやりたいする方法はありますか?つまり、ハッシュの2つのキーがそれぞれ同じ(aのコピー)値を参照するようにします。しかし、私はその値を一度しか指定しません。

答えて

6

はい、ここでは次の程度はどのよう

@x = { :all => tmp = { :x => 1, :y => 2 }, :abc => tmp } 
+1

もののコピーではないのですが、あなたは真tmp.dup(浅いコピー) – sris

+0

を使用してこれを修正することができます。私は、同じ値のコピーを1つのインスタンスを意味するものとして解釈しました。 – Tobias

0

@x = { :all => tmp = { :x => 1, :y => 2 }, :abc => tmp.reject {|k,v| false} } 
関連する問題