首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Scala的模式匹配系统中使用比较运算符

在Scala的模式匹配系统中使用比较运算符
EN

Stack Overflow用户
提问于 2009-10-19 00:48:23
回答 1查看 77K关注 0票数 157

是否可以使用Scala中的模式匹配系统进行比较匹配?例如:

代码语言:javascript
复制
a match {
    case 10 => println("ten")
    case _ > 10 => println("greater than ten")
    case _ => println("less than ten")
}

第二个case语句是非法的,但我希望能够指定“当a大于”。

EN

回答 1

Stack Overflow用户

发布于 2022-02-26 16:58:03

Scala的模式匹配允许您定义自己的提取器。在这种情况下,您可以简单地定义一个新的提取器:

代码语言:javascript
复制
class GreaterThan(n: Int) {
  def unapply(i: Int) = i > n
}

val GreaterThan10 = GreaterThan(10)

a match {
  case 10 => ???
  case GreaterThan10() => ???
  case _ => ???
}

或者只使用模式保护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1585395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档