Использование 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)
}

Обеспечивает ли использование lazy val в приведенном выше коде значительно большую производительность, чем в следующем коде?

package com.weiglewilczek.gameoflife

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

Или это просто случай ненужной оптимизации?

7
задан user7845123 7 October 2010 в 15:21
поделиться