Scala中的^^^运算符是什么



我在一些Scala代码中看到了^^^的用法,但不理解它的用法,也看不到任何关于它的文档。我也很确定它不是来自任何外部库,但可能是这样?我知道^^.map()的运算符,但不知道当你有第三个^时是否有相似性。

使用示例:

case object TypeFoo extends Type {
override def toString() = "Foo"
}
case object TypeBar extends Type {
override def toString() = "Bar"
}
def repType= (
"Foo" ^^^ TypeFoo
| "Bar" ^^^ TypeBar
)

据我所知,它可能是";由";,但我真的不确定,因此我提出了这个问题。

^^^方法的Javadoc说:

将成功结果更改为指定值的解析器组合子。

如果p成功,则p ^^^ v成功;丢弃其结果并返回v

@param v解析器,最多评估一次(如果p成功(,根本不评估如果CCD_ 10失败
@return是一个与当前解析器,但其成功结果是v

换句话说,"Foo" ^^^ TypeFoo只是"Foo" ^^ (_ => TypeFoo)的简写。

最新更新