【问题标题】:Is it possible to declare static vaiables and functions in a Scala Trait?是否可以在 Scala Trait 中声明静态变量和函数?
【发布时间】:2019-07-31 21:09:59
【问题描述】:

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

【问题讨论】:

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

标签: scala oop traits


【解决方案1】:

您可以拥有 trait 的伴随对象,就像拥有 class 的伴随对象一样。

因此,您不能在 trait 中声明 static 值,因为 Scala 不能以这种方式工作,但您可以使用伴随对象来实现相同的目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-05
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多