大佬教程收集整理的这篇文章主要介绍了swift – 类内的变异函数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class Zombie: Monster { var walksWithLimp = true final override func terrorizeTown() { town?.changePopulation(-10) super.terrorizeTown() } func changeName(name: String,walksWithLimp: Bool) { self.name = name self.walksWithLimp = walksWithLimp } }
Zombie继承了Monster类的名字字段.
var name = "Monster"
为什么
fredTheZombie.changeName("Tom",walksWithLimp: true)
即使函数头之前没有变异关键字也可以工作?
因此,我们需要包含关键字mutating以允许值类型的成员(例如函数†)改变其成员(例如结构的成员属性).变换值类型实例的成员意味着改变值类型实例本身(self),而改变引用类型实例的成员并不意味着引用类型实例(被认为是self)的引用被改变.
因此,由于类是Swift中的引用类型,我们不需要在Zombie类的任何实例方法中包含mutating关键字,即使它们改变了实例成员或类.如果我们要谈论改变实际的类实例fredTheZombie,我们会提到改变它的实际引用(例如指向另一个Zombie实例).
[†]:作为另一个例子,我们可以使用例如变异的getters(get);在这种情况下,我们需要明确标记,因为默认情况下这些是非突变的.另一方面,Setters(set)默认是变异的,因此即使它们改变了值类型的成员也不需要变异关键字.
以上是大佬教程为你收集整理的swift – 类内的变异函数全部内容,希望文章能够帮你解决swift – 类内的变异函数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。