Swift:默认 属性 与初始化程序中的设置

Swift: Default property vs setting in initializer

swift 使用默认 属性 值而不是在初始化程序中设置它有什么缺点吗?

例如,

class Foo: UIViewController {
    let value = UIRefreshControl()
}

对比

class Bar: UIViewController {
    var value : UIRefreshControl!

    // or using init()
    override func viewDidLoad() {
        self.value = UIRefreshControl()
    }
}

默认 属性 值看起来更简洁和优雅,但我没有看到它们在可以使用它们的代码示例中使用。

唯一的缺点是每次创建对象实例时都会设置默认 属性 值,即使 属性 随后在一个或多个初始化程序中被覆盖。如果您只是分配默认数值,这可能不是问题,但如果有一个 class 构建起来很昂贵,您最终可能会做两倍的工作。