小编use*_*123的帖子

使用lazy val缓存字符串表示

我在JAXMag的Scala特殊问题中遇到了以下代码:

package com.weiglewilczek.gameoflife

case class Cell(x: Int, y: Int) {
  override def toString = position
  private lazy val position = "(%s, %s)".format(x, y)
}
Run Code Online (Sandbox Code Playgroud)

lazy val上述代码中的使用是否比下面的代码提供了更多的性能?

package com.weiglewilczek.gameoflife

case class Cell(x: Int, y: Int) {
  override def toString = "(%s, %s)".format(x, y)
}
Run Code Online (Sandbox Code Playgroud)

或者只是一个不必要的优化案例?

scala lazy-evaluation micro-optimization

7
推荐指数
3
解决办法
1604
查看次数