/**
结构体是值类型
结构体不仅可以拥有属性,也可以有方法
*/
struct Rect {
// 结构体成员变量
var wIDth: Double = 5.0
var height: Double = 6.0
// 结构体的成员方法,可以访问使用成员属性。
func getWIDth() -> Double {
return wIDth
}
func show() -> VoID {
print("wIDth\(wIDth)")
}
}
var rect1: Rect = Rect.init(wIDth: 9.0,height: 9.0)
// 每一个成员方法都必须依赖于某一个具体的对象。
let wIDth = rect1.getWIDth()
print(wIDth)
print("---------------->")
rect1.show()
var rect2: Rect = Rect.init(wIDth: 23.0,height: 33.0)
print("---------------->")
print("rect2==\(rect2)")
/**
// 还可以这样子 直接赋值。 那么rect2 rect1内容完全一样。
(1)rect2 rect1 指向同一块内存
(2)rect2 rect1 是两个不同的实例,但是内容一致。
是将rect1的内容完全赋给了rect2,而不是让rect2指向rect1.
所以结构体不是引用,而是值类型。
*/
rect2 = rect1
print("---------------->")
print("rect2==\(rect2)")
/**
如果是引用的话,我修改了 rect1的宽度,那么rect2的宽度也会改变
但是我们这里看到rect2的宽度没有改变
*/
rect1.wIDth = 100.0
print("---------------->")
print("rect1==\(rect1)")
print("rect2==\(rect2)")
总结以上是内存溢出为你收集整理的8.5 Swift结构体是值类型全部内容,希望文章能够帮你解决8.5 Swift结构体是值类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)