在scala中做什么?

ale*_*nco 3 scala playframework

可能重复:
了解Scala解析器组合器中的波浪号

我在这个play2 教程中看到了以下内容:

  val task = {
    get[Long]("id") ~
    get[String]("label") map {
      case id~label => Task(id, label)
    }
  }
Run Code Online (Sandbox Code Playgroud)

什么~意思?(~在Google中搜索没有返回任何内容).为什么它似乎首先在一行结束然后它似乎连接两个属性?

fla*_*ian 8

Scala语法允许方法名称使用特殊字符,例如+,*:,并将它们用作中缀运算符,这有效地允许运算符重载以及创建新运算符.这可以使代码更简洁,而且还可以使其难以找出一个特定的Scala运营商做什么,因为你不能有效的为做一个谷歌搜索\:++~::或几乎所有的Scala操作方法名.为了使其更加困难,可以将隐式转换应用于其中一个操作数,因此提供操作符方法的类可能与源代码中操作数的声明类不同.

更新:使用Scalex


Gen*_*e T 5

Scalex,可以完成所有那些ascii和unicode字符搜索(在Horstmann的"不耐烦"一书中也很好地讨论过)

http://scalex.org/?q=~

http://scalex.org/?q=%E2%8A%9B

http://www.artima.com/pins1ed/book-index.html#indexanchor