是否可以执行以下操作:
def foo(x: Int): Boolean = {
case x > 1 => true
case x < 1 => false
}
答案 0 :(得分:26)
def foo(x: Int): Boolean =
x match {
case _ if x > 1 => true
case _ if x < 1 => false
}
请注意,您没有x == 1但是......
的情况答案 1 :(得分:2)
我会写这样的东西:
def foo(x: Int) = if (x > 1) true
else if (x < 1) false
else throw new IllegalArgumentException("Got " + x)
答案 2 :(得分:0)
由于您的示例中缺少x == 1
的情况,我认为它的处理方式与x < 1
相同。
你可以这样做:
def foo(x:Int):Boolean = (x - 1).signum match {
case 1 => true
case _ => false
}
但是,这当然可以简化很多:
def foo(x:Int) = (x - 1).signum == 1