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 构建起来很昂贵,您最终可能会做两倍的工作。
swift 使用默认 属性 值而不是在初始化程序中设置它有什么缺点吗?
例如,
class Foo: UIViewController {
let value = UIRefreshControl()
}
对比
class Bar: UIViewController {
var value : UIRefreshControl!
// or using init()
override func viewDidLoad() {
self.value = UIRefreshControl()
}
}
默认 属性 值看起来更简洁和优雅,但我没有看到它们在可以使用它们的代码示例中使用。
唯一的缺点是每次创建对象实例时都会设置默认 属性 值,即使 属性 随后在一个或多个初始化程序中被覆盖。如果您只是分配默认数值,这可能不是问题,但如果有一个 class 构建起来很昂贵,您最终可能会做两倍的工作。