在特征体中对此进行类型声明

问题描述 投票:0回答:1

在我从事的项目中,我发现了以下代码:

trait Trait1 {
  this: Actor with Reader with Writer =>

  import ProjectDefaultLib._

  val var1: String

  // rest of the code
}

我找不到

this: Actor with Reader with Writer =>
符号的含义。请解释一下。

scala syntax
1个回答
2
投票

这是一个自类型注释

摘自 Scala 之旅

自我类型是一种声明一个特征必须混合到另一个特征中的方法,即使它不直接扩展它。这使得依赖项的成员无需导入即可使用。

您可以在 Scala 书中查看更复杂的使用示例。

这个答案更深入地讨论了何时以及如何使用自我类型而不是直接扩展。

© www.soinside.com 2019 - 2024. All rights reserved.