5.6 类和结构两个类型的比较 [Swift原创教程]



1. 本节将类的引用特征和结构体进行比较,使你能够更清晰地明白类和结构体的区别。


2. 首先创建一个结构体。


3. 往结构体中添加两个属性。


4. 接着实例化结构体的对象,并设置它的两个属性的值。


5. 将该对象赋予一个变量,该变量也将具有和对象相同的属性,以及属性的值。


6. 这里修改新对象的属性的值。


7. 通过第13和第14行右侧的结果可以看出,结构体对象之间的值传递,采用的是拷贝的方式。两个对象都是相对独立的,一方发生变化,不会对另一方产生影响。


8. 接着我们再创建一个类。


9. 给类添加两个属性。


10. 接着添加一个初始化方法。


11. 在初始化方法中,给两个属性设置初始值。


12. 接着对类进行实例化,实例化的对象的两个属性,将拥有默认的值。


13. 然后将该对象赋予另一个对象。新对象拥有旧对象相同的类型、属性和方法,并且两者的两个属性的值也都是相同的。


14. 此时对第二个对象的属性的值进行修改。


15. 接着依次输出两个对象的属性,从右侧的实时反馈区可以看出,两个对象其实是对同一个实例的两个引用,当其中一个发生变化时,另一个也跟着发生变化。


16. 控制台输出的日志,也验证了类的引用特征,即类为引用类型,而结构体为值类型。


17. 最后使用全等号,来比较对同一个实例进行引用的两个对象。从右侧的结果可以看出,这两个对象是完全相同的。




本文整理自:《Swift4互动教程》,真正的[手把手]教学模式,用最快的速度上手iOS开发和Swift语言,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1320746678,或扫描本页底部的二维码。课程配套素材下载地址:资料下载

0