해시를 단계별로 실행하여 각 단계에서 값을 업데이트하는 가장 관용적 인 Ruby 방법은 무엇입니까?

톰 휴즈

간단한 해시를 통해 각 키-값 쌍의 값을 표시하고 사용자에게 해당 값을 업데이트 할 수있는 기능을 제공하고 싶습니다. 결정적으로 사용자가 Enter 키를 누르고 새 값을 제공하지 않으면 이전 값이 유지되어야합니다. 다음은 작동하지만 특히 Ruby-idiomatic이 아닌 샘플 코드입니다.

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

그게 전부입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관