我有一個變量id
,我想將它用作散列中的一個鍵,以便將分配給該變量的值用作散列的鍵。例如,如果我有變量id = 1
,那麼所需的結果散列值將爲{ 1: 'foo' }
。從Ruby中的變量創建一個哈希鍵?
我試圖創建一個與哈希,
{
id: 'foo'
}
但是,這並不工作,而不是導致哈希與符號:id
到'foo'
。
我可以發誓我以前做過這件事,但我完全畫空白。
我有一個變量id
,我想將它用作散列中的一個鍵,以便將分配給該變量的值用作散列的鍵。例如,如果我有變量id = 1
,那麼所需的結果散列值將爲{ 1: 'foo' }
。從Ruby中的變量創建一個哈希鍵?
我試圖創建一個與哈希,
{
id: 'foo'
}
但是,這並不工作,而不是導致哈希與符號:id
到'foo'
。
我可以發誓我以前做過這件事,但我完全畫空白。
如果要填充具有一定值的新哈希值,你可以將它們傳遞到Hash::[]
:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Hash[ [ ["a", 100], ["b", 200] ] ] #=> {"a"=>100, "b"=>200}
Hash["a" => 100, "b" => 200] #=> {"a"=>100, "b"=>200}
所以你的情況:
Hash[id, 'foo']
Hash[[[id, 'foo']]]
Hash[id => 'foo']
最後的語法也可用於id => 'foo'
與{}
:
{ id => 'foo' }
其他即,如果散列已經存在,則使用Hash#=[]
:
h = {}
h[id] = 'foo'
我被困惑的問題本身,現在這個答案讓我感到困惑。 (你可以告訴我什麼是OP詢問? –
@ArupRakshit OP希望使用'id'的值作爲key。'{id:'foo'}'不工作,因爲'id:'foo''是等價的到':id =>'foo''。 – Gumbo
啊,所以舊式散列語法可以工作,但不是新式樣。謝謝。 –
'H = {}; h [id] ='foo''或'Hash [id,'foo']' – Gumbo
@Gumbo,你可以將你的評論轉換爲答案,這樣我可以將它標記爲正確嗎? –
@ muistooshort,即訪問,而不是創建,這是一個不同的操作。 Gumbo的評論也表明語法不同。 –