【问题标题】:Declaring two classes in the same compilation unit在同一个编译单元中声明两个类
【发布时间】:2017-08-10 05:08:28
【问题描述】:

我对 Scala 还很陌生,想问一下约定。我有以下课程:

case class Cltn(msgs: Seq[Msg])
case class Msg(value: Int)

在同一个编译单元中定义这些类是否常见?或者这不是传统的,我们应该用不同的方式定义它们?我来自 Java,这就是我问这个问题的原因。

如果我们可以在同一个编译单元中定义它们,我们可以选择与CltnMsg不同的这个单元的名称,或者这不是常规的吗?赞Parameters.scala

【问题讨论】:

    标签: scala class


    【解决方案1】:

    在 Scala 中以惯用的方式对每个文件分组多个(案例)类。让它们扩展一个共同的sealed trait 也很常见,在这种情况下,所有东西都必须一起定义。

    至于命名约定,我见过两种经常使用的不同方法:

    • 用 contains (CamelCase) 中最重要的类的名称命名文件

    • 使用将这些事物组合在一起的逻辑概念的小写名称。

    在你的情况下,看起来第二个选项更适合,我会选择parameters.scala

    【讨论】:

    • 顺便说一句,把它们放在一个包对象中怎么样?是传统的吗?
    • 应尽可能避免包装对象。
    • 为什么?那有什么问题?可以扩展一下吗?
    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多