我无法在Swift中可视化初始化程序的工作。对于官方文档中的这个例子。
struct Fahrenheit{
var temp : Double
init(){
temp = 32.0
}
}
var f = Fahrenheit()
print(" \(f.temp)")
//Prints 32.0
这是我迄今所理解的,请在我错的时候纠正我:
我无法理解的是什么是
init(){
temp = 32.0
}
答案 0 :(得分:3)
深入理解对象的创建过程(作为类的实例或结构的实例)是非常重要的。基于在类或结构中定义的模板,在"空间"中创建对象。我喜欢将其命名为"对象空间"。因此,对象是"对象空间"中的struct Fahrenheit的实例。你可以尝试将它(可视化)看作一个气球。变量f是对该对象的引用,它被用作访问此气球(对象,实例)的工具。 我建议你看一下Apple的文档:
在这里你可以看到:
并且 - 在我看来,这是一个如何可视化对象和对象引用的好方法。
因此,当系统执行:var f = Fahrenheit()时,首先 - 它在Object空间中生成一个气球,它调用初始值(隐式或显式)来设置初始值,而不是它产生一个引用(f) - 指向刚出生的物体。
所以:
init(){
temp = 32.0
}
不会对-f产生影响,它会在对象(气球)内部产生效果,并且f用于访问气球。 (如果没有引用,ARC将终止该对象)