什么是List [String~Int]?

时间:2012-04-13 07:38:29

标签: scala playframework playframework-2.0

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

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

有人可以告诉我List[String~Int]中的“〜”是什么意思吗?

1 个答案:

答案 0 :(得分: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中找到~的定义。