scala中的C#部分类是否有任何等价物?我想用这样的对象离开我的功能:
// file 1:
object MainClass {
def addValue(value: AnyRef) = ???
}
// file 2:
partial object MainClass {
addValue(1)
}
// file 3:
partial object MainClass {
addValue(2)
}
// file 4: initialize MainClass
MainClass.init()
我如何使用scala实现此功能?
答案 0 :(得分:8)
您最接近的方法是将您的功能划分为特征,并将它们划分为不同的文件:
// file 1:
class MainClass extends Functionality1, Functionality2
// file 2:
trait Functionality1 {
self: MainClass =>
}
// file 3:
trait Functionality2 {
self: MainClass =>
}
请注意,通过使用自我类型并将其设置为MainClass
,您可以确保每个特征都可以引用最终混合到MainClass
中的所有成员。