Я новичок в Scala и пытаюсь написать несколько программ, чтобы улучшить его. Я написал поток (версия 1), очень похожий на Java, и я пытаюсь написать его, используя функции более высокого порядка (версия 2).
версия 1:
val entry: Option[Int] = getEntry()
if (entry.isDefined) {
val cachedEntry = entry.get
if (cachedEntry.state.isActive) {
return cachedEntry
} else {
Cache.invalidateCachedEntry(cachedEntry)
}
}
Cache.createNewEntry()
версия 2:
val entry: Option[Int] = getEntry()
entry.filter(_.state.isActive).orElse((() => {
Cache.invalidateCachedEntry _
Option(Cache.createNewEntry())
})()).get
Я не уверен, что это правильный подход или есть лучший способ сделать это?