scala – 如何将简单的名称带入范围?

我正在开发一个代码生成器,它将输出以下类/对象:

class A {
   var a : Int = _
   var b : B = _

   class B {
    var b : Int = _
    var c : C = _

    class C {
      var c : Int = _
    }
  }
}

object A {
  val a = ...
  object B extends Base {
    val b = ...
    object C extends Base {
      val c = ...
    }
  }
}

用户构造这样的术语:

A (
  a(1),
  B (
    b(2),
    C (
      c(3)
    )
  )
)

现在为了使它工作,我必须在用户代码中插入3个导入:

import A._
import A.B._
import A.B.C._

这看起来很难看.可能还有另一种解决我只是盲目看到的问题的方法吗?

先感谢您.

最佳答案 导入后A._ B将在导入范围内(至少在Scala 2.8中),因此您可以节省几个字母:

import A._
import B._
import C._
点赞