我需要更換使用Scala可用的手段靜態變量:如何在基類
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
錯誤。
如何在基類中定義一個靜態成員,並由其後代繼承?
如何在文件的開頭添加import語句? – sschaef