8.7 Swift类是引用类型

前端之家收集整理的这篇文章主要介绍了8.7 Swift类是引用类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_404_2@/**@H_404_2@

@H_404_2@类是引用类型@H_404_2@

*/@H_404_2@

@H_404_2@

@H_404_2@/**@H_404_2@

@H_404_2@我们说@H_404_2@Swift@H_404_2@中的类和结构体非常的相似。@H_404_2@

@H_404_2@但是这个是表面的,它们背后的机制和原理在@H_404_2@switf@H_404_2@的设计中是完全不一样的。@H_404_2@

*/@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@/**@H_404_2@

@H_404_2@

@H_404_2@下面将@H_404_2@Swift@H_404_2@中的@H_404_2@ @H_404_2@类和结构体最重要的不同点@H_404_2@

@H_404_2@类是引用类型,结构体是值类型。@H_404_2@

@H_404_2@

@H_404_2@类有继承@H_404_2@ @H_404_2@结构体没有继承@H_404_2@

@H_404_2@类有属性和行为@H_404_2@ @H_404_2@结构体也有属性和行为@H_404_2@

*/@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@class@H_404_2@ Rect {@H_404_2@

@H_404_2@// @H_404_2@结构体成员变量@H_404_2@

@H_404_2@var@H_404_2@ width: @H_404_2@Double@H_404_2@ = @H_404_2@5.0@H_404_2@

@H_404_2@var@H_404_2@ height: @H_404_2@Double@H_404_2@ = @H_404_2@6.0@H_404_2@

@H_404_2@

@H_404_2@// @H_404_2@结构体的成员方法@H_404_2@,@H_404_2@可以访问使用成员属性。@H_404_2@

@H_404_2@func@H_404_2@ getWidth() -> @H_404_2@Double@H_404_2@ {@H_404_2@

@H_404_2@return@H_404_2@ @H_404_2@width@H_404_2@

}@H_404_2@

@H_404_2@

@H_404_2@func@H_404_2@ show() -> @H_404_2@Void@H_404_2@ {@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"width@H_404_2@\@H_404_2@(@H_404_2@width@H_404_2@)"@H_404_2@)@H_404_2@

}@H_404_2@

}@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@var@H_404_2@ rect1: @H_404_2@Rect@H_404_2@ = @H_404_2@Rect@H_404_2@()@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@var@H_404_2@ rect2: @H_404_2@Rect@H_404_2@ = rect1@H_404_2@

@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"---------------->"@H_404_2@)@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"rect1.width==@H_404_2@\@H_404_2@(@H_404_2@rect1.@H_404_2@width@H_404_2@)"@H_404_2@)@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"rect1.height==@H_404_2@\@H_404_2@(@H_404_2@rect1.@H_404_2@height@H_404_2@)"@H_404_2@)@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@// @H_404_2@改变@H_404_2@rect1 @H_404_2@的宽度@H_404_2@

rect1.@H_404_2@width@H_404_2@ = @H_404_2@100.0@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"rect2.width==@H_404_2@\@H_404_2@(@H_404_2@rect2.@H_404_2@width@H_404_2@)"@H_404_2@)@H_404_2@

@H_404_2@print@H_404_2@(@H_404_2@"rect2.height==@H_404_2@\@H_404_2@(@H_404_2@rect2.@H_404_2@height@H_404_2@)"@H_404_2@)@H_404_2@

@H_404_2@

@H_404_2@

@H_404_2@/**@H_404_2@

@H_404_2@我们可以看到@H_404_2@

rect1 @H_404_2@赋给@H_404_2@ rect2 @H_404_2@后,改变@H_404_2@ rect1@H_404_2@的宽度,那么@H_404_2@ rect2@H_404_2@的宽度也改变了。@H_404_2@

@H_404_2@说明是让@H_404_2@rect2@H_404_2@指向@H_404_2@rect1@H_404_2@。@H_404_2@ @H_404_2@也就是它们两个指向同一个实例。@H_404_2@

@H_404_2@说明类是引用类型@H_404_2@

*/@H_404_2@

原文链接:https://www.f2er.com/swift/322424.html

猜你在找的Swift相关文章