謝謝Holger,你激勵了我。
這適用於從字符串轉換鍵符號也爲嵌套哈希,因爲我需要:
class Hash
def keys_to_sym
result = {}
self.each_pair do |key, value|
value = value.keys_to_sym if value.class == Hash
result[key.to_sym] = value
end
result
end
end
所以,你可以改變這一點:
h = {
"key1"=>"value1",
"key2"=>"value2",
"key3"=>{"key4"=>"value4", "key5"=>"value5"},
"key6"=>{"key7"=>"value7", "key8"=>{"key9"=>"value9"}}
}
成這樣:
h_transformed = {
:key1=>"value1",
:key2=>"value2",
:key3=>{:key4=>"value4", :key5=>"value5"},
:key6=>{:key7=>"value7", :key8=>{:key9=>"value9"}}
}
儘管文檔中提到了該方法,但該方法並未在Ruby 2.4.1中提供。這是奇怪的,一個沒有其他運送。奇怪的是2.4.2沒有這個方法,所以它可能是文檔中的一個錯誤,或者是2.4.x分支中缺少的一個特性。 – tadman