5

私はこのようなものが欲しい:

private val cachedResponse = mutable.Option.empty[A]

def get: A = cachedResponse getOrElseUpdate db.findModel()

def update: Unit = {
  db.updateModel
  cachedResponse.empty()    // set it to None/Option.empty
}

このような一般的な HashMap ベースのメモ化は探していません。を使用して実装しようとしましたvar Option[A]が、あまり慣用的には見えませんでした。

private var cachedResponse: Option[A] = None

def get: A = cachedResponse getOrElse {
 cachedResponse = Option(db.findModel())
 cachedResponse.get
}

def update: Unit = {
  db.updateModel
  cachedResponse = None
}
4

1 に答える 1