Swift 自定义初始值设定项实际上是如何实现的;初始化";?
目前正在学习Swift,这也是我第一次学习编码。我正在研究初始值设定项,我被自定义初始值设定项的想法所困扰 看看下面的代码,我真的不确定这实际上是如何初始化实例的。将属性的值设置为未初始化的实例是否会导致另一个未初始化的属性Swift 自定义初始值设定项实际上是如何实现的;初始化";?,swift,initialization,Swift,Initialization,目前正在学习Swift,这也是我第一次学习编码。我正在研究初始值设定项,我被自定义初始值设定项的想法所困扰 看看下面的代码,我真的不确定这实际上是如何初始化实例的。将属性的值设置为未初始化的实例是否会导致另一个未初始化的属性 init (region: String, population: Int, stopLights: Int) { self.region = region self.population = population numberOfStoplight
init (region: String, population: Int, stopLights: Int) {
self.region = region
self.population = population
numberOfStoplights = stopLights
}
感谢您的帮助。谢谢
init
在为对象(结构或类实例)分配内存后被调用。此时对象存在,但其字段(成员变量)包含未知(未定义)值
为了安全和类型一致性,Swift从不允许访问未定义的值。因此,您必须在
init
中为对象的每个字段指定一个值,即使这只是一些“默认”值。可选字段初始化为nil
我明白了。为了确保我正确地解释了您:1)在初始化之前,该实例的值未定义,编译器无法处理。但是2)在我们使用init
初始化它之后,该实例将成为未知(未定义)值。尽管此值未知,编译器仍会将其视为可接受的值。@GeoffreySetiawan“未知值”是什么意思?所有属性都在初始值设定项中赋值。@我想我真的不明白这一点。哈因此,init
将实例self.region
的值分配给region
。既然self.region
将是一个未初始化的值(首先是init
的整点),那么如何从init
初始化region
?对不起…我对斯威夫特真的很陌生,所以你可能得把它放低一点…不,这是另一种方式self.region
用参数region
的值初始化a=b
将a
的值更改为b
。是。我喜欢把a=b
写成a← b
。这是一项任务;你没有建立对等关系。