2012-02-20 3 views
0

Я ищу диапазон здесь, но, похоже, дает мне пустые результаты.Ruby range issue

numbers = ["03","03","06","06","06","07","09","10"] 

numbers.each do |n| 
    result = case n 
     when 1..5 then "Jan" 
     when 6..10 then "Feb" 
    end 
    puts result 
end 

Любая помощь? Thanks

ответ

3

Диапазон, который у вас есть, представляет собой целочисленный диапазон. Для этого, чтобы работать ваш вклад также должен быть в целых числах:

numbers = ["03","03","06","06","06","07","09","10"] 
numbers.each do |n| 
    result = case n.to_i 
     when 1..5 then "Jan" 
     when 6..10 then "Feb" 
    end 
    puts result 
end 

Вы также можете оставить его как строки и сделать это таким образом:

numbers = ["03","03","06","06","06","07","09","10"] 
numbers.each do |n| 
    result = case n 
     when '01'..'05' then "Jan" 
     when '06'..'10' then "Feb" 
    end 
    puts result 
end