Swift 在类中初始化属性,在特定类中初始化惰性属性?
在swift中,当我声明某个类的实例时,该类中的属性是否已初始化Swift 在类中初始化属性,在特定类中初始化惰性属性?,swift,properties,initialization,lazy-loading,Swift,Properties,Initialization,Lazy Loading,在swift中,当我声明某个类的实例时,该类中的属性是否已初始化 惰性属性在被调用/使用之前是不会初始化的(如果我错了,请纠正我),因此基本上声明类的实例不会初始化惰性属性,但会初始化常规属性(如果有)(我相信称为存储的) 最后,这本书说下面的实例是“声明的”和“初始化的”……我可以看到它是声明的,但它是如何“初始化的”??括号之间没有发送参数 let someClass = SomeClassWithLazyVar() 是(仅“常规”存储属性-这不适用于计算属性和惰性属性)。甚至只有在创建
let someClass = SomeClassWithLazyVar()
name\u of_class()
时,实际上是在创建该类的实例(并立即调用其init()
方法)。因此,正在使用所述实例初始化someClass
someClass
。声明是在程序中引入一个新的命名值。声明常量(或变量)的名称并按如下方式标识其类型:
init() { }
让someClass:SomeClassWithLazyVar
someClass = SomeClassWithLazyVar()
绝大多数情况下(尤其是常数),您声明常数并同时初始化:
let someClass = SomeClassWithLazyVar()
是否需要在括号内传递参数取决于所创建对象的初始值设定项。我假设SomeClassWithLazyVar
有一个不带参数的初始值设定项,如下所示:
init() { }
老兄,你们真棒,多谢了,澄清了很多困惑!!哦,好的,“构造函数调用”和“初始值设定项调用”是一样的吗?如果是的话,在谈到这样的主题时,哪个术语更合适?基本上是的,它们是。我想这两种表达都可以使用。“构造函数调用”听起来更像是C++语言,但无论如何你都会被理解。