哈希我想什麼做的是通過在哈希散列看起來是這樣的:問題迭代在Ruby中
input = {
"configVersion" => "someVers",
"box" =>
{
"primary" => {
"ip" => "192.168.1.1",
"host" => "something"
},
"api" => {
"live" => "livekey",
"test" => "testkey"
}
}
}
然後遍歷它,繼續當值是另一個哈希,並用它產生輸出。結果應該是這樣的:
configVersion = "someVers"
box.primary.ip = "192.168.1.1"
box.primary.host = "something"
等等...
我知道如何抓取,並繼續如果該值是一個哈希,但我不能確定如何連接整個並且把價值傳遞回去。這裏是我的代碼:
def crawl(input)
input.each do |k,v|
case v
when Hash
out < "#{k}."
crawl(v)
else
out < " = '#{v}';"
end
end
end
我的問題是:在哪裏定義out
和如何返回都回來了。我對Ruby很新。
'method_missing'通常很方便,但往往不是「更好」。它涉及許多相對模糊的控制流程,從性能角度來看,分發非常昂貴。 – dbenhur
性能打擊非常真實,但我想提一提,因爲它可以爲某些問題提供簡單/有點優雅的解決方案。 –