Scala - 与条件语句的模式匹配?

发布于 2024-11-25 05:21:26 字数 134 浏览 1 评论 0原文

是否可以做类似的事情:

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

Is it possible to do something like:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别再吹冷风 2024-12-02 05:21:26
def foo(x: Int): Boolean = 
    x match {
        case _ if x > 1 => true
        case _ if x < 1 => false
    }

请注意,您没有 x == 1 的情况......

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...

溇涏 2024-12-02 05:21:26

我会写这样的东西:

def foo(x: Int) = if (x > 1) true
                  else if (x < 1) false
                  else throw new IllegalArgumentException("Got " + x)

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)
临风闻羌笛 2024-12-02 05:21:26

由于您的示例中缺少 x == 1 的情况,因此我假设它的处理方式与 x x 相同。 1..

你可以这样做:

def foo(x:Int):Boolean = (x - 1).signum match {
  case 1 => true
  case _ => false
}

但是,这当然可以简化很多:

def foo(x:Int) = (x - 1).signum == 1

Since the case of x == 1 is missing in your example, I assume that it is handled just the same as x < 1.

You can do it like this:

def foo(x:Int):Boolean = (x - 1).signum match {
  case 1 => true
  case _ => false
}

But then, this can of course be simplified a lot:

def foo(x:Int) = (x - 1).signum == 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文