如何减少太多elsif条款的冗余? [红宝石]

时间:2014-10-11 01:29:09

标签: ruby

def roll_die
  rand(1..6)
end

if roll_die == 1
  puts "ruby"
elsif roll_die == 2
  puts "uW"
elsif roll_die == 3
  puts "eBay"
elsif roll_die == 4
  puts "meditate"
elsif roll_die == 5
  puts "musiClean"
else
  puts "medicate"
end

如何减少代码中的冗余?

2 个答案:

答案 0 :(得分:8)

如何使用Array#sample

['ruby', 'uW', 'eBay', 'meditate', 'musiClean', 'medicate'].sample

答案 1 :(得分:4)

创建一个数组,并通过索引访问它。

rolls = %w(ruby uW eBay meditat musiClean medicate)

puts rolls[roll_die - 1]