具有相同名称的 Scala 对象和特征

标签 scala object traits

在 Scala 中,一个类和一个对象可以是伴侣(同名,同一个文件)

我遇到了 Scala 源代码,其中包含一个文件,其中定义了一个特征和对象,并且两者都具有相同的名称,但对象没有扩展特征。

这种风格好吗?

最佳答案

是的,在 trait 或对象同名对象成为伴生对象的情况下,您可以在下面的代码中看到您可以访问类中的私有(private)成员和 trait 两种情况

特征

trait Simple {
private def line = "Line"
}

object Simple {
val objTrait = new Simple{}
def lineObj=objTrait.line
}

Simple.lineObj

类(class)
class Simple {
private def line = "Line"
}

object Simple {
val objTrait = new Simple{}
def lineObj=objTrait.line
}

Simple.lineObj

关于具有相同名称的 Scala 对象和特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49737453/

相关文章:

python - 在特征名称后面加上@有什么作用?

java - 从 Java 中过滤 Scala 集

scala - 在 Scala 中,如何在类的主构造函数中定义局部参数?

scala - scala REPL 内的静态导入

JavaScript - 将对象添加到对象中

rust - 特征的不可变数据

generics - 解决特征实现冲突

scala - 从光滑表定义创建表

java - 在 Java 中复制对象

java - 重写 HashCode,什么时候这样做不会有问题?