請考慮下面的代碼:從不能用作構造函數參數的默認值同伴進口類
object Main extends App {
object Project {
case class Config(rules: Seq[String] = Seq.empty)
}
import Project._
//case class Project(root: String, config: Config) // compiles fine
//case class Project(root: String, config: Project.Config = Project.Config()) // compiles fine
case class Project(root: String, config: Config = Config()) // error: not found: type Config
}
爲什麼最後一個版本不編譯(同與Config = Config.apply()
)?
它看起來像我的錯誤。 –
它可能與'case class's在他們的伴侶對象中添加一些代碼的事實有關,所以他們在正確定義之前訪問它時遇到了麻煩。然而,你可以在Project的構造函數中訪問(隱式定義的)'Project.apply',所以對我來說真的很奇怪。 –
當我將伴隨對象放在案例類後面時,它就起作用。 – Suma