可以在Scala特性中声明静态变量和函数吗?

可以在Scala特性中声明静态变量和函数吗?,scala,oop,traits,Scala,Oop,Traits,我知道在Scala中可以使用伴生ojbect为类声明静态变量和函数,但是有没有办法在Trait中声明静态变量/函数?你可以为Trait创建伴生对象,就像为类创建伴生对象一样 因此,您不能在trait中声明static值,因为Scala不是这样工作的,但您可以使用伴生对象实现相同的功能。不,您不能。特别是因为Scala实际上没有静态的概念,所以它只有值。现在,我们都知道对象被编译为静态字段,但这只是一个运行时细节。-如果希望只创建一次,则需要在对象上定义它。在你的trait上,如果你愿意的话,你可

我知道在Scala中可以使用伴生ojbect为类声明静态变量和函数,但是有没有办法在Trait中声明静态变量/函数?

你可以为
Trait
创建伴生对象,就像为
类创建伴生对象一样


因此,您不能在
trait
中声明
static
值,因为Scala不是这样工作的,但您可以使用伴生对象实现相同的功能。

不,您不能。特别是因为Scala实际上没有静态的概念,所以它只有值。现在,我们都知道
对象
被编译为静态字段,但这只是一个运行时细节。-如果希望只创建一次,则需要在
对象上定义它。在你的trait上,如果你愿意的话,你可以引用该对象上的val。