Scala - 嵌套类型关键字

时间:2017-07-04 13:55:50

标签: scala types akka akka-stream

我正在阅读Akka源代码,我遇到了以下

type Repr[+O] <: FlowOps[O, Mat] {
   type Repr[+OO] = FlowOps.this.Repr[OO]
   type Closed = FlowOps.this.Closed
}
type Closed

有人可以解释一下这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

FlowOps[O, Mat] {
   type Repr[+OO] = FlowOps.this.Repr[OO]
   type Closed = FlowOps.this.Closed
}

compound type with a refinement。也就是说,FlowOps[O, Mat]本身可以包含任何ReprClosed类型的成员;在这里我们需要特定的。此类型用作类型成员type Repr[+O]的上限。