class - => 在 Scala 类定义的开头是什么意思?

标签 class scala

问题的作者
Exchanging type parameters with abstract types写了一个 =>在他的类定义的开头。例子:

abstract class Thing { t => 
  type A 
  type G <: Group { type A = t.A } 
  val group: G 
} 
t =>有什么用意思 ?

因为这在 Google & Co 中很难找到,有人可以给我更多背景信息或提供链接,我可以在哪里找到有关此语言结构的更多信息?

最佳答案

类本身的默认命名是 this .您可以将其替换为 t来自 t =>
如果您的类包含子类并且您需要访问封闭的自引用,这将很有用。

t =>在您的示例中,您将编写如下内容:

abstract class Thing {
  type G <: Group { type A = this.A }
}
Group { type A = this.A }是一个子类型,所以 this将引用组特化本身而不是事物对象。可能你得到的不是你想要得到的。如果您需要访问 Thing self reference,您应该通过为 self reference 分配另一个名称来解决名称冲突
abstract class Thing { another_this = >
  type G <: Group { type A = another_this.A}
}

关于class - => 在 Scala 类定义的开头是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267148/

相关文章:

java - 使用 Gradle 在 Java 之前/与 Java 一起编译 Scala

scala - 过滤器和scala spark sql中的where之间的区别

scala - Scala 是否有替代下载位置?

javascript - 私有(private)方法使用或不使用函数的困惑

java - 如何从给定类 Item 获取数组?

python - 尝试将类(在列表中)保存到文件中

list - 如何以功能样式从列表中添加选择性行的值?

sql - 仅选择存在的字段(SQL 或 Scala)

c++ - 另一个包含的对象如何改变容器对象的私有(private)数据成员?

java - 用java序列化员工列表