8

在浏览 play 框架的 scala 文档(Play Docs)时,我看到了一种我以前从未见过的语法。

val populations:List[String~Int] = {
  SQL("select * from Country").as( str("name") ~ int("population") * ) 
}

谁能告诉我“~”List[String~Int]什么意思?

4

1 回答 1

22

这可能会有所帮助:

scala> class ~[A, B]
defined class $tilde

scala> List.empty[String~Int]
res1: List[~[String,Int]] = List()

实际上,~它不是标准库的一部分,这是来自 play 框架的通用类,它允许使用中缀表示法。在 scala 中,任何带有 2 个泛型参数的泛型类都可以与中缀表示法一起使用。例如,以下也有效:

scala> class X[A, B]
defined class X

scala> List.empty[String X Int]
res1: List[X[String,Int]] = List()

在您的情况下,您将~Play framework API中找到 的定义。

于 2012-04-13T07:47:07.250 回答