必要なもの:
trait Base {
import scala.math.{Pi=>mPi, cos=>msoc, sin=>msin}
static val Pi : Float = mPi.toFloat
static def cos(phi : Float) : Float = mcos(phi).toFloat
static def sin(phi : Float) : Float = msin(phi).toFloat
// ...
// some useful functions
}
// children use float defined pi, cos and sin without additional boilerplate
class Child1 extends Base
// ...
class Child2 extends Base
それは明らかにうまくいきません。私が試したこと
trait Base {
import Base._
// some useful functions
}
object Base {
// utility functions
import scala.math.{Pi=>mPi, cos=>mcos, sin=>msin}
val Pi : Float = mPi.toFloat
def cos(phi : Float) : Float = mcos(phi).toFloat
def sin(phi : Float) : Float = msin(phi).toFloat
}
class Child1 extends Base {
// use sin and cos inside
}
また、コンパイラは、関数およびChild1
について何もしないという点でエラーを出します。sin
cos
子孫に継承される基本クラスで静的メンバーを定義するにはどうすればよいですか?