Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scala - pattern matching with conditional statements?

Is it possible to do something like:

def foo(x: Int): Boolean = {
    case x > 1 => true
    case x < 1 => false
}
like image 685
Dominic Bou-Samra Avatar asked Jul 19 '11 00:07

Dominic Bou-Samra


2 Answers

def foo(x: Int): Boolean = 
    x match {
        case _ if x > 1 => true
        case _ if x < 1 => false
    }

Note that you don't have a case for x == 1 though...

like image 112
dhg Avatar answered Oct 15 '22 14:10

dhg


I would write something like this:

def foo(x: Int) = if (x > 1) true
                  else if (x < 1) false
                  else throw new IllegalArgumentException("Got " + x)
like image 45
michael.kebe Avatar answered Oct 15 '22 14:10

michael.kebe