8.5 Swift结构体是值类型
/**
结构体是值类型
结构体不仅可以拥有属性,也可以有方法 */
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)") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |