小编Hon*_*fei的帖子

为什么抽象特征成员val初始化的微小变化结果不同?

我在下面的"编程Scala"的第6章中给出了以下代码片段:

object HelloWorld {
  def main(args: Array[String]) {
    trait AbstractT2 {
      println("In AbstractT2:")
      val value: Int
      val inverse = 1.0 / value // ???
      println("AbstractT2: value = " + value + ", inverse = " + inverse)
    }

    val c2b = new AbstractT2 {
      println("In c2b:")   //---->line 1
      val value = 10       //---->line 2
    }
    println("c2b.value = " + c2b.value + ", inverse = " + c2b.inverse)
  }
}
Run Code Online (Sandbox Code Playgroud)

上面代码的结果是:

In AbstractT2:
AbstractT2: value = 0, inverse = Infinity
In …
Run Code Online (Sandbox Code Playgroud)

scala

2
推荐指数
1
解决办法
191
查看次数

标签 统计

scala ×1