Aur*_*n B 3 scala pattern-matching
我正在阅读Lihaoyi关于他的解析器组合器框架的演示,同时仅了解Scala的基础知识。我碰到了我根本不明白的那句话:
val Parsed.Success(2, _) = parse("1+1", expr(_))
Run Code Online (Sandbox Code Playgroud)
来自Java,看起来很奇怪。有人知道它做什么吗?提前致谢。
https://www.lihaoyi.com/fastparse/
在Java中相当于什么?
Scala知道提取器对象 -请参阅docs.scala-lang.org
它们主要用于模式匹配-请参阅docs.scala-lang.org
因此,这可以与vals 一起使用:
val customer2ID = CustomerID("Nico")
val CustomerID(name) = customer2ID
println(name) // prints Nico
Run Code Online (Sandbox Code Playgroud)
scala.MatchError如果解析器不起作用,您的示例将抛出。
尝试val Parsed.Success(2, _) = parse("1+2", expr(_))//应该为3