Alex Rivera | Logout

How can I pattern match on a range in Scala?

Asked 2010-07-01T19:06:30.377
42

In Ruby I can write this:

case n
when 0...5  then "less than five"
when 5...10 then "less than ten"
else "a lot"
end

How do I do this in Scala?

Edit: preferably I'd like to do it more elegantly than using if.

Edit
Report

1 Answer

4

For Ranges of equal size, you can do it with old-school math:

val a = 11 
(a/10) match {                      
    case 0 => println (a + " in 0-9")  
    case 1 => println (a + " in 10-19") } 

11 in 10-19

Yes, I know: "Don't divide without neccessity!" But: Divide et impera!

answered 2010-10-06T02:52:49.213

Your Answer