考虑到这个 typedef:
case class Outer(someVal: Int) {
case class Inner(someOtherVal: Int)
}
如何构造类型的对象Inner
,(即如何编写有效的 scala 语法)?
我希望将Inner
范围限定为Outer
避免与同一包中的不同 Outer 实例发生名称冲突。
考虑到这个 typedef:
case class Outer(someVal: Int) {
case class Inner(someOtherVal: Int)
}
如何构造类型的对象Inner
,(即如何编写有效的 scala 语法)?
我希望将Inner
范围限定为Outer
避免与同一包中的不同 Outer 实例发生名称冲突。
内部在外部实例的范围内。所以,你可以写这样的东西:
val res = new Outer(4)
val res2 = new res.Inner(2)
但是,我不认为这是你想要的。为避免名称冲突,您可以使用 package,它就是为此而生的。
编辑 :
您还可以在 Outer 的伴随对象中定义 Inner,如 om-nom-nom 所说:
case class Outer(someVal : Int)
object Outer {
case class Inner(otherVal : Int)
}
val res = Outer(5)
val in = Outer.Inner(6)