【发布时间】:2019-09-26 09:22:52
【问题描述】:
假设有一个 Scala 案例类Point
case class Point(x: Int, y: Int)
可以使用通配符进行匹配:
val p = new Point(1,2)
val inRightHalfPlane = p match {
case Point(x, _) if x>0 => true
case _ => false
}
但是,如果成员数量增加,则需要使用更多的通配符_:
case class Point(
x0: Int,
x1: Int,
x2: Int,
x3: Int,
x4: Int,
)
val flag = p match {
case Point(x,_,_,_,_,) if x>0 => true
......
}
有没有类似下面代码的语法糖?
val flag = p match {
case Point(x0=x) if x>0 => true
......
}
【问题讨论】:
-
case p: Point if (p.x0) => true我知道的越接近。我同意最好有你建议的东西。 -
有点相关的讨论here。
标签: scala pattern-matching wildcard case-class