SQueryL代码运算符有什么作用?

时间:2010-12-18 07:12:33

标签: scala squeryl

我在更新时正在阅读SQueryL documentation,我看到了:

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

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

1 个答案:

答案 0 :(得分:4)

我记得在Schema Definition Page上不久前读过关于波浪线操作符的内容。 它是关于原始类型和自定义类型之间的歧义,虽然(因为我刚开始学习Scala)它对我来说仍然听起来有些模糊;)。引用一小段

  

...

     

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

     

使用org.squeryl.PrimitiveTypeMode时,编译器会将表达式视为   下一个示例中的一个作为布尔值。需要.~函数来告诉编译器   左侧是TypedExpressionNode [Int]的节点,它将导致整个表达式为a   LogicalBoolean是where子句的用法:

     

...

希望有所帮助。