SQueryL 波浪线运算符有什么作用?

发布于 2024-10-08 05:12:10 字数 327 浏览 0 评论 0原文

我正在阅读有关更新的 SQueryL 文档,我发现:

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

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

I was reading the SQueryL documentation on updating and I saw:

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

I had a hard time finding the ~ method from the SQueryL source code and the linked documentation obviously doesn't tell me what it does either. Does anyone care to explain?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月静好 2024-10-15 05:12:10

我记得不久前在架构定义页面上读到过有关波形符运算符的内容。
它是关于消除原始类型和自定义类型之间的歧义,尽管(因为我刚刚开始学习 Scala)它对我来说仍然有点模糊;)。引用一小段

...

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

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

...

希望有帮助。

I recall reading about the tilde operator not too long ago on the Schema Definition Page.
It is about disambiguating between a primitive and a custom type, although (as I am just beginning to learn Scala) it still sounds a bit vague to me ;). To quote a little piece

...

important : in PrimitiveTypes mode there can be ambiguities between numeric operators

When using org.squeryl.PrimitiveTypeMode, the compiler will treat an expression like the
one in the next example as a Boolean. The .~ function is needed to tell the compiler that the
left side is a node of TypedExpressionNode[Int] which will cause the whole expression to be a
LogicalBoolean which is what the where clause takes :

...

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文