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()
Run Code Online (Sandbox Code Playgroud)
我如何使用scala实现此功能?
您可以做的最接近的是将您的功能划分为特征,并将它们划分为不同的文件:
// file 1:
class MainClass extends Functionality1, Functionality2
// file 2:
trait Functionality1 {
self: MainClass =>
}
// file 3:
trait Functionality2 {
self: MainClass =>
}
Run Code Online (Sandbox Code Playgroud)
请注意,通过使用自我类型并将其设置为MainClass,您可以确保每个特征都可以引用最终将混合到其中的所有成员MainClass.