Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当外部类在Scala中声明为变量时实例化内部类_Scala - Fatal编程技术网

当外部类在Scala中声明为变量时实例化内部类

当外部类在Scala中声明为变量时实例化内部类,scala,Scala,当我将外部类对象声明为var时,我无法实例化内部类。但是当我把它作为val时,我没有得到任何错误。为什么会这样 class Outer(name : String ) { ter => class Iner(name : Inner) { println("Printing outer class name : " + ter.name ) println("Printing inner class name : " + name ) } } object Ov

当我将外部类对象声明为
var
时,我无法实例化内部类。但是当我把它作为
val
时,我没有得到任何错误。为什么会这样

class Outer(name : String ) { ter  =>
  class Iner(name : Inner) {
    println("Printing outer class name : " + ter.name )
    println("Printing inner class name : " + name )
  }
}

object OverRiding extends App {
  var outr : Outer = new Outer("Priyaranjan Outer")
  var inner =  new outr.Iner("Priyaranjan Inner")
}

问题在于,在构造函数调用中,引用实例化类的表达式必须是稳定标识符。这是在

如果您查看a的定义,您将看到为什么
outr
必须是
val

  • p、 其中p是路径,x是p的稳定成员。稳定成员是由对象定义或非易失性类型的值定义引入的包或成员

虽然你可以用路径无关的类型输入它,但显然不行。恐怕不符合规格。