我有以下问题(编程语言:scala):派生类D必须使用其自身的参数进行较长的计算才能计算基类参数:
class D(a:Int,b:Int) extends B(f(a,b)) {...}
现在,我似乎有3种可能性:
(a)将f(a,b)的主体直接放在B的构造函数中:B({...})
(b)在D的伴随对象中将f定义为静态函数
(c)将f定义为D的成员函数,该成员函数恰好是静态的
(a)似乎很不雅。这些方法甚至合法吗?你会怎么做?
我问的是问题,因为我是从Scala开始的,而我们的组织实际上还没有安装Scala,所以我只能在家中间歇地进行实验。
感谢您的所有回复。
apply
伴侣对象中的实现方法,以适当的方式转换构造函数的参数
object B {
def f(a: Int) = a
def apply(a: Int, b: Int) = new B(f(a), f(b))
}
如果始终需要转换构造函数参数,请考虑API的正确性。我想代码审查有助于使此代码更好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句