Использование lazy val для кэширования строковых представлений
Я обнаружил следующий код в специальном выпуске Scala от JAXMag:
package com.weiglewilczek.gameoflife
case class Cell(x: Int, y: Int) {
override def toString = position
private lazy val position = "(%s, %s)".format(x, y)
}
Использует лиlazy val
в приведенном выше коде обеспечить значительно большую производительность, чем следующий код?
package com.weiglewilczek.gameoflife
case class Cell(x: Int, y: Int) {
override def toString = "(%s, %s)".format(x, y)
}
Или это просто случай ненужной оптимизации?