刚刚遇到这个学习Scalatra命令的示例代码:
protected def handle: Handler = {
case c: CreateTodoCommand =>
add(newTodo(~c.name.value))
}
~
在这种特殊情况下, in的相关性究竟是什么~c.name.value
?不确定在哪里可以找到有关此特定符号的更多文档。
在斯卡拉:
~x
翻译成
x.unary_~
(这也适用于+
,-
并且!
如本文所述)。所以你的例子转化为:
add(newTodo(c.name.value.unary_~))
因此,可以在value
.
它似乎与此处注释掉的代码块有关:https ://github.com/scalatra/scalatra/blob/2.2.x_2.9/core/src/main/scala/org/scalatra/package.scala
如果发现可以在这里工作,那是唯一的一元波浪号运算符。其他的似乎主要是按位而不是运算符
实际上,这似乎也可能是来自 scalaz 库的一些导入,但缺少导入语句。~Option[_] 的类似用法也可以在其他地方找到......