在浏览play框架的scala文档(Play Docs)时,我看到了一种我从未见过的语法。
val populations:List[String~Int] = {
SQL("select * from Country").as( str("name") ~ int("population") * )
}
有人可以告诉我List[String~Int]
中的“〜”是什么意思吗?
答案 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中找到~
的定义。