多种自我类型可能吗?

Mal*_*lio 46 scala

我想做以下,但自我类型行只是不编译.我有这种语法错误或这是不可能的?

trait A {
  def aValue = 1
}
trait B {
  def bValue = 1
}
trait C {
  a : A, b : B =>
  def total = a.aValue + b.bValue
}

class T extends C with A with B { ...
Run Code Online (Sandbox Code Playgroud)

小智 76

您可以拥有一个复合类型的自我类型.

试试这个:

trait A {
  def aValue = 1
}
trait B {
  def bValue = 1
}
trait C {
  self: A with B =>
  def total = aValue + bValue
}

class ABC extends A with B with C
Run Code Online (Sandbox Code Playgroud)