我在读squeryl 文档 关于更新,我看到了:

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

我很难从Squeryl源代码中找到〜方法,而链接的文档显然也不告诉我它的作用。有人在乎解释吗?

有帮助吗?

解决方案

我记得不久前阅读了有关蒂尔德操作员的信息 模式定义页面. 。这是关于在原始类型和自定义类型之间歧义,尽管(因为我刚刚开始学习Scala)对我来说仍然有些模糊;)。引用一小块

...

重要的是:在原型模式下,数字运算符之间可能存在歧义

使用org.squeryl.primitivetypemode时,编译器将像下一个示例中的表达式一样将表达式视为布尔值。需要.〜函数来告诉编译器左侧是键入expressexnode [int]的节点,它将导致整个表达式成为逻辑boolean,这是从句所需的内容:

...

希望有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top