我考虑过零合并,如果让,到目前为止似乎没有什么了不起的,有什么想法吗?

var habitResults: [[String:String]]? = resultsFilteredByHabit[habitId]

if habitResults != nil {
    // No action required
}
else {
    habitResults = results.filter({ $0["habitId"] == habitId })
    resultsFilteredByHabit[habitId] = habitResults
}

最佳答案

swift中常见的延迟加载模式语法是

lazy var habitResults : [[String:String]] = {
    return results.filter{ $0["habitId"] == habitId }
}()

在第一次访问变量时执行一次闭包

关于swift - 有没有一种更优雅的方法可以在Swift中编写这种惰性加载模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54610671/

10-09 18:32