对不属于某个类的实用程序函数进行分组的最佳方法是什么?在Ruby中,我会将它们分组在一个模块中。我应该在Scala中使用traits来获得相同的效果还是对象?
答案 0 :(得分:13)
通常,我将在语义上不同的实用函数放入不同的特征中,并为每个特征创建一个对象,例如
trait Foo {
def bar = 1
}
object Foo extends Foo
这样我最灵活。我可以通过import
语句或类声明中的with
导入实用程序函数。此外,我可以轻松地将不同的实用程序特征组合到一个新对象中,以简化最常用的实用程序函数的import语句,例如
object AllMyUtilites extends Foo with Foo2
答案 1 :(得分:7)
打包对象或只是普通对象。
例如,请参阅Scala.Predef
和scala.math
。
答案 2 :(得分:2)
如果您希望将它们与将要使用它的类混合使用,则为特征。对象,如果您只想导入它们。