有一些帖子介绍如何编写代码static constant
and static variable
在斯威夫特.但不清楚什么时候使用static constant
and static variable
而不是constant
and variable
。有人可以解释一下吗?
当您在类(或结构)中定义静态 var/let 时,该信息将在所有实例(或值)之间共享。
分享信息
class Animal {
static var nums = 0
init() {
Animal.nums += 1
}
}
let dog = Animal()
Animal.nums // 1
let cat = Animal()
Animal.nums // 2
正如你在这里看到的,我创建了 2 个单独的实例Animal
但两者确实共享相同的静态变量nums
.
辛格尔顿
通常使用静态常量来采用单例模式。在本例中,我们希望分配的类实例不超过 1 个。
为此,我们将对共享实例的引用保存在常量内,并隐藏初始值设定项。
class Singleton {
static let sharedInstance = Singleton()
private init() { }
func doSomething() { }
}
现在当我们需要Singleton
我们写的实例
Singleton.sharedInstance.doSomething()
Singleton.sharedInstance.doSomething()
Singleton.sharedInstance.doSomething()
这种方法确实允许我们始终使用相同的实例,即使在应用程序的不同点也是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)