/**
结构体是值类型
*/
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)")
原文地址:https://www.jb51.cc/swift/322426.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。