刚刚参加了这个示例代码,了解Scalatra中的命令:
protected def handle: Handler = {
case c: CreateTodoCommand =>
add(newTodo(~c.name.value))
}
在这种特殊情况下,~
中~c.name.value
的相关性究竟是什么?不知道在哪里可以找到关于这个特定符号的更多文档。
答案 0 :(得分:7)
在Scala中:
~x
转换为
x.unary_~
(这也适用于+
,-
和!
,如this post中所述。因此,您的示例转换为:
add(newTodo(c.name.value.unary_~))
因此可以在value
的类型中找到文档。
答案 1 :(得分:0)
它似乎与此处注释的代码块有关:https://github.com/scalatra/scalatra/blob/2.2.x_2.9/core/src/main/scala/org/scalatra/package.scala
这是唯一一个可以在这里工作的一元波浪号运算符。其他人似乎主要是按位而不是运营商
实际上,这似乎也可能是scalaz库中的一些导入,因为缺少import语句。 〜选项[_]的类似用法也可以在其他地方找到......