Bri*_*ent 9 scala pattern-matching scala-2.11
我(无意中)遇到了一些模式匹配语法,我没想到要编译,现在无法弄清楚.
它似乎与...有关unapplySeq.
请注意case x List(_,_)这个简单示例中的部分:
val xs = List(1, 2, 3) //> xs : List[Int] = List(1, 2, 3)
xs match {
case x List (_, _) => "yes"
case _ => "no"
} //> res0: String = yes
Run Code Online (Sandbox Code Playgroud)
我习惯于:或@模式匹配语法,但我对此感到困惑.这种语法如何工作以及它与它的关系是什么(如果有的话)unapplySeq?
在Scala 2.11.6中执行的示例代码
等效的非中缀版本是:
\n\nxs match {\n case List(x, _, _) => "yes"\n case _ => "no"\n}\nRun Code Online (Sandbox Code Playgroud)\n\nScala 规范说:
\n\n\n\n中缀操作模式 p;op;q 是构造函数\n 或提取器模式 op(p,q) 的简写。模式中运算符的优先级和结合性与表达式中的相同。
\n\n中缀操作模式 p;op;(q1,\xe2\x80\xa6,qn) 是\n 构造函数或提取器模式 op(p,q1,\xe2\x80\xa6,qn) 的简写。
\n
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |