我已经考虑了空合并,如果让,似乎没有这个伟大的,到目前为止,任何想法?
var habitResults: [[String:String]]? = resultsFilteredByHabit[habitId]
if habitResults != nil {
// No action required
}
else {
habitResults = results.filter({ $0["habitId"] == habitId })
resultsFilteredByHabit[habitId] = habitResults
}
在夫特通常的迟缓装载模式的语法是
lazy var habitResults : [[String:String]] = {
return results.filter{ $0["habitId"] == habitId }
}()
封盖当变量被访问的第一次执行一次
我想,这看起来有点更优雅:
resultsFilteredByHabit[habitId] = resultsFilteredByHabit[habitId] ?? results.filter({ $0["habitId"] == habitId })