我在阅读有关更新的SQueryL documentation时看到:

update(songs)(s =>
  where(s.title === "Watermelon Man")
  set(s.title := "The Watermelon Man",
      s.year  := s.year.~ + 1)
)

我很难从SQueryL源代码中找到〜方法,链接的文档显然也没有告诉我它的作用。有人愿意解释吗?

最佳答案

我记得不久前在Schema Definition Page上阅读了有关波浪符运算符的内容。
它是关于在原始类型和自定义类型之间进行歧义消除的,尽管(因为我刚开始学习Scala)对我来说还是有点含糊;)。引用一小段

...

重要提示:在PrimitiveTypes模式下,数值运算符之间可能会有歧义

当使用org.squeryl.PrimitiveTypeMode时,编译器将像
在下一个示例中为Boolean。需要。〜函数来告诉编译器
左侧是TypedExpressionNode [Int]的节点,它将导致整个表达式为
LogicalBoolean,这是where子句采用的内容:

...

希望能有所帮助。

关于scala - SQueryL波浪符运算符做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4477085/

10-10 04:46