我试图优化我的ruby else if语句

时间:2014-02-19 13:23:48

标签: ruby-on-rails ruby

我试图找出是否有更优雅的方式来编写这段代码:

result.each_with_index do |rowset,index|

    if rowset["Answer"].to_i == 0   
        puts "1"    
    end

    if rowset["Answer"].to_i == 1   
        puts "2"
    end

    if rowset["Answer"].to_i == 2   
        puts "3"        
    end

    if rowset["Answer"].to_i == 3   
        puts "4"
    end

3 个答案:

答案 0 :(得分:6)

然后我会使用String#next

 # no need to do `String#to_i` method call.
 result.each { |rowset| puts rowset['Answer'].next } 

答案 1 :(得分:3)

这应该这样做:

result.each do |rowset|
  puts rowset["Answer"].to_i + 1
end

答案 2 :(得分:1)

这个怎么样?

result = [{"Answer"=>"1"}, {"Answer"=>"3"}]
puts result.map(&-> v { v["Answer"].next })

输出:

2
4
=> nil