我想要这样的东西:
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
}
Run Code Online (Sandbox Code Playgroud)
我不是在寻找像这样的泛型基于HashMap的memoization .我尝试使用a实现它,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
}
Run Code Online (Sandbox Code Playgroud)