运维开发网

scala – 有没有办法让ArrowAssoc在模式匹配中工作?

运维开发网 https://www.qedev.com 2020-05-29 10:30 出处:网络 作者:运维开发网整理
如果我想写 1 -> 2 match { case 1 -> 2 => "matched" case _ => "not matched" } // error: not found: value -> 而不是稍微不那么明显 1 -> 2 match { case (1, 2) => "matched" case _ => "not matched" } 我只有
如果我想写

1 -> 2 match {
  case 1 -> 2 => "matched"
  case _      => "not matched"
}
// error: not found: value ->

而不是稍微不那么明显

1 -> 2 match {
  case (1, 2) => "matched"
  case _      => "not matched"
}
我只有这样的事情!我喜欢它,因为我发现它在许多情况下更易读.

object -> {
  def unapply[A, B](pair: (A, B)): Option[(A, B)] =
    Some(pair)
}

现在你可以做:

scala> val a -> b = 1 -> 2
a: Int = 1
b: Int = 2
0

精彩评论

暂无评论...
验证码 换一张
取 消