2009-04-14 37 views
1

此代碼的工作,當然:Ruby哈希初始化:這個漂亮可能嗎?

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

但這並不:

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

有沒有辦法做我想在這裏?即我希望散列中的兩個鍵每個引用相同的(副本)值。但我只想指定一次值。

回答

6

是的,在這裏:

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

這不是一個副本,雖然,但你可以通過使用tmp.dup(淺拷貝) – sris 2009-04-15 07:30:29

0

如何如下:

@x = { :all => tmp = { :x => 1, :y => 2 }, :abc => tmp.reject {|k,v| false} }