2
A
回答
3
你可以,但如果他们没有密切相关,你最好不要。
实际的原因是,将许多类/特征添加到文件可能会使编译(特别是增量编译)变慢。
下面是https://virtuslab.com/blog/zinc-sbt-friendly-code/#less-is-more
减班/特征/每源对象文件意味着节省更多的时间提取。 Scalac可以编译整个源代码。即使锌知道只有一行对象需要重新编译,它仍然需要编译整个源代码(以及所有蕴含宏和其他讨厌的东西)。
解决方案尽可能简单:分割您的资源!如果增量编译不足以说服你,你应该意识到它还应该有助于编译时间,甚至在合并期间导致更少的冲突。
值得注意的例外是:sealed trait
家庭:
sealed
允许只有源文件内延伸trait
,让你在这种情况下,你必须保持所有类延伸的trait
在一起。类和伴随对象:以类名命名的
object
仅当其在同一个源文件中定义时才被视为伴侣对象,所以再次必须将它们放在一起。
的official style guide似乎证实了这种方法,即使它没有明确提到编译表演:
通常,文件应包含一个单一的逻辑编译单元。 “逻辑”我的意思是一个类,特质或对象。本指南的一个例外是具有陪伴对象的类或特征。伴随对象应该与其相应的类或特征分组在同一个文件中。
1
是的,你可以让一个类扩展一个特征在同一个scala文件中。此外,请查看sealed trait
并查看它是否与您有关。
相关问题
- 1. 斯卡拉功能,需要扩展类和特征的类型
- 2. 斯卡拉类与发布服务器和用户特征
- 3. 斯卡拉自我类型特征和调用方法的超
- 4. 斯卡拉和'不同类型的特征实例映射:java.util.Map [K,V]'
- 5. 在另一个特征和类中引用相同的特征
- 6. 斯卡拉 - 特征成员初始化:使用特征修改类成员
- 7. 斯卡拉 - 一类
- 8. 斯卡拉在斯卡拉类
- 9. 斯卡拉:如何使用多类型参数特征
- 10. 一个文本输入和斯卡拉
- 11. 斯卡拉案例类在同一个文件中的顺序问题
- 12. 斯卡拉val和类型在同一时间
- 13. 我该如何在斯卡拉的基础特征中建立一个类型化(特定)工厂?
- 14. &&和||在斯卡拉
- 15. 斯卡拉类铸件
- 16. 斯卡拉REPL:找到给定的类/特征定义在哪里
- 17. 斯卡拉 - 导入一个内部类
- 18. 斯卡拉 - 一个共同的特点的第二代继承
- 19. 斯卡拉特质或混凝土类
- 20. 斯卡拉特质类型不匹配
- 21. 斯卡拉集合内存足迹特征
- 22. 斯卡拉播放2 Guice的依赖注入特征
- 23. JPA和“匿名”类在斯卡拉
- 24. 斯卡拉在同一个文件夹层次上播放多个项目
- 25. 斯卡拉 - 合并两个JSON文件
- 26. 斯卡拉 - 创建多个文件
- 27. 斯卡拉特质中的Setter和Getters?
- 28. 斯卡拉斯卡拉 - 但类RDD是不变的类型T
- 29. 斯卡拉特质语法
- 30. PySpark和斯卡拉
感谢您的回复。这不是一个密封的特质。我知道我可以做到这一点。问题是这是否是一种很好的编码风格。 –