Swift 初始化委托的意义是什么?
我正在努力理解初始授权代表团的目的是什么。我目前正在从《大书呆子牧场》一书中学习斯威夫特,并遇到了以下代码:Swift 初始化委托的意义是什么?,swift,initialization,Swift,Initialization,我正在努力理解初始授权代表团的目的是什么。我目前正在从《大书呆子牧场》一书中学习斯威夫特,并遇到了以下代码: init (region: String, population: Int, stopLights: Int) { self.region = region self.population = population numberOfStoplights = stopLights } init (population: Int, stopLights: Int {
init (region: String, population: Int, stopLights: Int) {
self.region = region
self.population = population
numberOfStoplights = stopLights
}
init (population: Int, stopLights: Int {
self.init(region: “N/A”, population: population, stopLights: stopLights)
}
这让我很困惑。如果初始化实例的全部目的是给它一个值,那么为什么要初始化它两次呢?第二个init()只是用不同参数初始化类的另一种方法。在本例中,如果区域未知,您仍然可以使用区域的默认值“N/a”初始化类。第二个init()只是使用不同参数初始化类的另一种方法。在本例中,如果区域未知,您仍然可以使用区域获得默认值“N/a”来初始化类。根据Apple Developer库: 初始化者可以调用其他初始化者来执行实例初始化的一部分。此过程称为初始值设定项委派,可避免在多个初始值设定项之间重复代码
根据苹果开发者库: 初始化者可以调用其他初始化者来执行实例初始化的一部分。此过程称为初始值设定项委派,可避免在多个初始值设定项之间重复代码
我不确定我是否仍然理解它。在你的例子中,如果我们想让区域为“N/A”,如果它碰巧是未知的,那么我们不能在开始时将其初始化为“N/A”吗?很难说没有看到你描述的类的完整代码。更好的示例可能是接受数据库id的初始值设定项,因此在该初始值设定项中,将查询数据库,并将生成的区域、人口和红绿灯信息传递给带有这三个参数的默认初始值设定项。我不确定是否仍能理解它。在你的例子中,如果我们想让区域为“N/A”,如果它碰巧是未知的,那么我们不能在开始时将其初始化为“N/A”吗?很难说没有看到你描述的类的完整代码。更好的示例可能是接受数据库id的初始值设定项,因此在该初始值设定项中,将查询数据库,并将生成的区域、人口和红绿灯信息传递给具有这三个参数的默认初始值设定项。