// Type 1:
class A {
    static let b = ["m":1, "n":2]
}
// Type 2:
class A {
    static let b: [String:Int] = {
         let result = ["m":1, "n":2]
         return result
    }()
}


当我们访问诸如A.b [“ m”]之类的静态变量时,初始化逻辑后面有什么区别吗?在什么情况下我们需要使用类型1而不是类型2?

最佳答案

2之间没有区别,静态变量将采用它的赋值,然后访问将相同

类型1:首选单线配置

类型2:在需要长时间配置返回的对象时使用e.x:需要配置许多属性的tableView委托/ dataSource / backgroundView

关于swift - 快速以不同方式初始化静态变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58249876/

10-12 05:32