阅读this article时,我采用以下语法:
implicit val slaveCanRead: Slave HasPrivilege Read = null
作者说:
此外,请注意,
的另一种表示法Slave HasPrivilege Read
只是HasPrivilege[Slave, Read]
将示例保留在基本scala中,示例也可以是
val foo: Map[String, Long] = Map()
val bar: String Map Long = Map()
我正在寻找一些可以解释这种语法的文档/文章,却找不到任何文档/文章。有人可以指向允许这种语法的语言功能吗?
答案 0 :(得分:5)
这真的和T1 TCon T2 = TCon[T1, T2]
一样简单。这是section 3.2.8 of the language specification。
InfixType ::= CompoundType {id [nl] CompoundType}
如果中缀类型以:
结尾,则它是右关联的,否则它是左关联的,就像方法一样,混合固定是一个没有括号的错误。
答案 1 :(得分:2)
这是infix type。因此
val map: Map[String, Int] = ...
实际上相当于
val map: String Map Int = ...
这对Function
类型特别有用,因此您可以编写
val f: Int => Int = ...
而不是
val f: Function[Int, Int] = ...