Scala - 复杂条件模式匹配

发布于 2024-11-25 13:27:08 字数 415 浏览 0 评论 0原文

我有一个我想表达的声明,在 C 伪代码中,它看起来像这样:

switch(foo):
    case(1)
        if(x > y) {
            if (z == true) {
                doSomething()
            }
            else {
                doSomethingElse()
            }
        }
        return doSomethingElseEntirely()
        
    case(2)
        // essentially more of the same

Is a good way possible with the scala 模式匹配语法?

I have a statement I want to express, that in C pseudo-code would look like this:

switch(foo):
    case(1)
        if(x > y) {
            if (z == true) {
                doSomething()
            }
            else {
                doSomethingElse()
            }
        }
        return doSomethingElseEntirely()
        
    case(2)
        // essentially more of the same

Is a nice way possible with the scala pattern matching syntax?

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

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

发布评论

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

评论(1

行至春深 2024-12-02 13:27:08

如果您想在单个 match 语句中处理多个条件,您还可以使用 guards 来为案例指定其他条件:

foo match {    
  case 1 if x > y && z => doSomething()
  case 1 if x > y => doSomethingElse()
  case 1 => doSomethingElseEntirely()
  case 2 => ... 
}

If you want to handle multiple conditions in a single match statement, you can also use guards that allow you to specify additional conditions for a case:

foo match {    
  case 1 if x > y && z => doSomething()
  case 1 if x > y => doSomethingElse()
  case 1 => doSomethingElseEntirely()
  case 2 => ... 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文