【问题标题】:How is this case class match pattern working?这个案例类匹配模式是如何工作的?
【发布时间】:2010-11-06 17:54:07
【问题描述】:

我刚刚在 Scala actors 包中看到了这个案例类:

case class ! [a](ch: Channel[a], msg: a)

在 JavaDoc 中,它以以下形式描述了用法:

receive {
  case Chan1 ! msg1 => ...
  case Chan2 ! msg2 => ...
}

为什么不是这样:

receive {
  case !(Chan1, msg1) => ...
  case !(Chan2, msg2) => ...
}

是 bang 运算符!与以冒号结尾的方法类似的特殊情况:

【问题讨论】:

    标签: scala pattern-matching case-class


    【解决方案1】:

    在进行模式匹配时,Scala 编译器会将o1 c1 o2 解释为与c1(o1, o2) 相同。这就是为什么 :: 在模式匹配中也起作用的原因。

    【讨论】:

    • 为答案干杯。很遗憾,回答 Scala 问题没有更多积分!
    猜你喜欢
    • 2017-02-25
    • 2013-11-28
    • 2012-01-02
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多