结构与类在swift语言

结构与类在swift语言,第1张

概述从苹果书 “结构和类之间最重要的区别之一是当结构在代码中传递时总是被复制,但类通过引用传递。 任何人都可以让我明白这是什么意思,对我来说类和结构似乎是一样的。 这里有一个类的例子。请注意,当名称更改时,两个变量引用的实例都会更新。鲍勃现在是苏,无论在哪里,鲍勃都曾参考过。 class SomeClass { var name: String init(name: String) { 从苹果书
“结构和类之间最重要的区别之一是当结构在代码中传递时总是被复制,但类通过引用传递。

任何人都可以让我明白这是什么意思,对我来说类和结构似乎是一样的。

这里有一个类的例子。请注意,当名称更改时,两个变量引用的实例都会更新。鲍勃现在是苏,无论在哪里,鲍勃都曾参考过。
class SomeClass {    var name: String    init(name: String) {        self.name = name    }}var aClass = SomeClass(name: "Bob")var bClass = aClass // aClass and bClass Now reference the same instance!bClass.name = "Sue"println(aClass.name) // "Sue"println(bClass.name) // "Sue"

现在有了一个结构,我们看到的值是复制的,每个变量保持自己的一组值。当我们将名称设置为Sue时,aStruct中的Bob结构不会改变。

struct SomeStruct {    var name: String    init(name: String) {        self.name = name    }}var aStruct = SomeStruct(name: "Bob")var bStruct = aStruct // aStruct and bStruct are two structs with the same value!bStruct.name = "Sue"println(aStruct.name) // "Bob"println(bStruct.name) // "Sue"

因此,为了表示有状态的复杂实体,类是真棒。但对于仅仅是一个测量或相关数据的位的值,结构更有意义,因此您可以轻松地复制它们并使用它们计算或修改值,而不必担心副作用。

总结

以上是内存溢出为你收集整理的结构与类在swift语言全部内容,希望文章能够帮你解决结构与类在swift语言所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1062439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存