/**
结构体是值类型
*/
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.f2er.com/swift/322426.html