簡體   English   中英

什么是最慣用的 Ruby 方式來逐步通過 hash,在每一步更新值?

[英]What is the most idiomatic Ruby way to step through a hash, updating values at each step?

我想逐步完成一個簡單的 hash,顯示每個鍵值對的值,並讓用戶能夠更新該值。 至關重要的是,如果用戶只是按 Enter 鍵並且沒有提供新值,那么舊值應該會繼續存在。 這是我的示例代碼,它有效,但似乎不是特別符合 Ruby 語言習慣:

mydata = {"key1" => "value1", "key2" => "value2", "key3" => "value3"}

newdata = {}

mydata.each do |k, v|
    puts "current value is " + v.to_s
    input = gets.chomp
    if input.length == 0
        newdata[k] = mydata[k]
    else
        newdata[k] = input
    end
end

puts mydata
puts newdata

如果你真的不關心鑰匙:

newdata = mydata.transform_values do |value|
   puts "Current: #{value.inspect}"
   updated = gets.chomp
   updated.empty? ? value : updated
end

這里的所有都是它的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM