scala - 在scala中声明一个没有方括号的泛型类

标签 scala scala-generics

阅读时this article我来到了以下语法:

implicit val slaveCanRead: Slave HasPrivilege Read = null

作者说:

Also, please not that Slave HasPrivilege Read is just another notation for HasPrivilege[Slave, Read]



将示例保持在基本的 Scala 中,该示例也可以是
val foo: Map[String, Long] = Map()
val bar: String Map Long = Map()

我正在寻找一些可以解释这种语法的文档/文章,但找不到。有人可以指出允许这种语法的语言功能吗?

最佳答案

真的就像T1 TCon T2 = TCon[T1, T2]一样简单.它是 section 3.2.8 of the language specification .

InfixType ::= CompoundType {id [nl] CompoundType}


如果中缀类型以 : 结尾它是右结合的,否则它是左结合的,就像方法一样,混合固定性是一个没有括号的错误。

关于scala - 在scala中声明一个没有方括号的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46849019/

相关文章:

scala - scala 中泛型抽象类型的模式匹配

java - Scala classNotFound on Any 类型

Scala 编译器提示方法级别的泛型参数类型不匹配

scala - Play Framework 2.3 中的域路由

scala - 如何在 Scala 中最好地实现 "first success"(即,从一系列容易失败的操作中返回第一个成功)

java - 如何让 postgres JDBC 在 Scala Mac OS 中工作?

scala - 在Scala中,我可以动态指定参数类型的类型参数吗?

scala - LabelledGeneric 获取类名