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. 正確使用斯卡拉特徵和類型
- 5. 斯卡拉密封特徵的迭代?
- 6. Mockito的斯卡拉測試特徵
- 7. 斯卡拉和'不同類型的特徵實例映射:java.util.Map [K,V]'
- 8. 斯卡拉:將一個密封特徵實例到HList
- 9. 在另一個特徵和類中引用相同的特徵
- 10. 斯卡拉 - 特徵成員初始化:使用特徵修改類成員
- 11. 斯卡拉 - 一類
- 12. 斯卡拉在斯卡拉類
- 13. 斯卡拉:如何使用多類型參數特徵
- 14. 一個文本輸入和斯卡拉
- 15. 斯卡拉同構類型
- 16. 斯卡拉隊列和PriorityQueue基礎特徵
- 17. 斯卡拉:在一個塊
- 18. 斯卡拉案例類在同一個文件中的順序問題
- 19. 斯卡拉val和類型在同一時間
- 20. 斯卡拉類型投影:在一個路徑依賴的特徵中挑選一個對象
- 21. &&和||在斯卡拉
- 22. 我該如何在斯卡拉的基礎特徵中建立一個類型化(特定)工廠?
- 23. 斯卡拉類鑄件
- 24. 斯卡拉 - 相同,但不同類型
- 25. 斯卡拉REPL:找到給定的類/特徵定義在哪裏
- 26. 指定一個類型(斯卡拉)
- 27. 斯卡拉 - 導入一個內部類
- 28. 斯卡拉 - 一個共同的特點的第二代繼承
- 29. 日食斯卡拉插件,斯卡拉項目類型失蹤
- 30. 斯卡拉:複製case類與特質
感謝您的回覆。這不是一個密封的特質。我知道我可以做到這一點。問題是這是否是一種很好的編碼風格。 –