說我有這個散列:哈希到本地變量裏面紅寶石反過來值
entry = {"director"=>"Chris Nolan", "prducer"=>"Sum Duk", "writer"=>"Saad Bakk"}
我想相關的值來提取每個鍵進入自己的局部變量:
director = "Chris Nolan"
producer = "Sum Duk"
...
通過使用一個循環而不是:
director = entry["director"]
由於有很多值,我不想單獨做它們。
我發現這幾乎完美的工作,除了它創建一個實例變量,我想要一個局部變量,但local_variable_set
因爲某些原因不存在。
entry.each_pair { |k, v| instance_variable_set("@#{k}", v) }
有沒有解決方法?或者失敗了,一種將實例變量轉換爲本地變量的方法,並且可以在不逐一刪除實例的情況下進行刪除?
任何原因,他們不能留在哈希中,並從那裏訪問?據推測,你以後使用了局部變量 - 是不是很容易使用哈希值? – Pavling
如果您使用的是Rails(或者僅僅是ActiveSupport),您可以使用下面的一行:'director,producer,writer = entry.values_at('director','producer','writer')'。不幸的是,你必須輸入每個變量名兩次(而不是你要求的零次),但它仍然是我發現的最簡潔的方法。 – antinome
可能重複的[如何動態創建局部變量?](http://stackoverflow.com/questions/18552891/how-to-dynamically-create-a-local-variable) – Ajedi32