我在这个play2 tutorial中看到了以下内容:
val task = {
get[Long]("id") ~
get[String]("label") map {
case id~label => Task(id, label)
}
}
~
是什么意思? (在Google中搜索~
并未返回任何内容)。
为什么它似乎首先在一行结束然后它似乎连接两个属性?
答案 0 :(得分:8)
Scala语法允许方法名称使用特殊字符,例如+
,*
和:
,并将它们用作中缀运算符,这有效地允许运算符重载以及创建新运营商这可以使代码更简洁,但也可能难以弄清楚特定Scala运算符的作用,因为您无法有效地对\:
或++
或{{1}进行Google搜索}或~
或几乎任何Scala运算符方法名称。为了使其更加困难,可以将隐式转换应用于其中一个操作数,因此提供操作符方法的类可能与源代码中操作数的声明类不同。
更新:使用Scalex
答案 1 :(得分:5)
Scalex,可以完成所有那些ascii和unicode字符搜索(在Horstmann的“不耐烦”一书中也很好地讨论了
答案 2 :(得分:1)
这是我在大学的编译课程中的一个分配,它简化了代数表达
( x + 0 ) - ( 1 * --x )
x + - ( 1 * --x )
x + - ( --x )
x + - ( x )
0
构建一个类似的SQL表
第一部分
get[Long]("id") ~
get[String]("label")
解析两行
并且地图案例为您提供解析结果
我记得这是我开始学习scala / play时看到的第一件事。我建议你好好休息一下并阅读整本书(programming in scala 2nd edition)并执行此操作online class
您还应该考虑升降机