3

刚刚遇到这个学习Scalatra命令的示例代码:

 protected def handle: Handler  = {
    case c: CreateTodoCommand => 
      add(newTodo(~c.name.value))
  }

~在这种特殊情况下, in的相关性究竟是什么~c.name.value?不确定在哪里可以找到有关此特定符号的更多文档。

4

2 回答 2

7

在斯卡拉:

~x

翻译成

x.unary_~

(这也适用于+-并且!本文所述)。所以你的例子转化为:

add(newTodo(c.name.value.unary_~))

因此,可以在value.

于 2013-06-17T21:11:03.493 回答
0

它似乎与此处注释掉的代码块有关:https ://github.com/scalatra/scalatra/blob/2.2.x_2.9/core/src/main/scala/org/scalatra/package.scala

如果发现可以在这里工作,那是唯一的一元波浪号运算符。其他的似乎主要是按位而不是运算符

实际上,这似乎也可能是来自 scalaz 库的一些导入,但缺少导入语句。~Option[_] 的类似用法也可以在其他地方找到......

于 2014-02-17T10:00:43.557 回答