*/@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@class@H_502_2@ Rect {@H_502_2@
@H_502_2@// @H_502_2@结构体成员变量@H_502_2@
@H_502_2@var@H_502_2@ width: @H_502_2@Double@H_502_2@ = @H_502_2@5.0@H_502_2@
@H_502_2@var@H_502_2@ height: @H_502_2@Double@H_502_2@ = @H_502_2@6.0@H_502_2@
@H_502_2@
@H_502_2@// @H_502_2@结构体的成员方法@H_502_2@,@H_502_2@可以访问使用成员属性。@H_502_2@
@H_502_2@func@H_502_2@ getWidth() -> @H_502_2@Double@H_502_2@ {@H_502_2@
@H_502_2@return@H_502_2@ @H_502_2@width@H_502_2@
}@H_502_2@
@H_502_2@
@H_502_2@func@H_502_2@ show() -> @H_502_2@Void@H_502_2@ {@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"width@H_502_2@\@H_502_2@(@H_502_2@width@H_502_2@)"@H_502_2@)@H_502_2@
}@H_502_2@
}@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@var@H_502_2@ rect1: @H_502_2@Rect@H_502_2@ = @H_502_2@Rect@H_502_2@()@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@var@H_502_2@ rect2: @H_502_2@Rect@H_502_2@ = rect1@H_502_2@
@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"---------------->"@H_502_2@)@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"rect1.width==@H_502_2@\@H_502_2@(@H_502_2@rect1.@H_502_2@width@H_502_2@)"@H_502_2@)@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"rect1.height==@H_502_2@\@H_502_2@(@H_502_2@rect1.@H_502_2@height@H_502_2@)"@H_502_2@)@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@// @H_502_2@改变@H_502_2@rect1 @H_502_2@的宽度@H_502_2@
rect1.@H_502_2@width@H_502_2@ = @H_502_2@100.0@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"rect2.width==@H_502_2@\@H_502_2@(@H_502_2@rect2.@H_502_2@width@H_502_2@)"@H_502_2@)@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"rect2.height==@H_502_2@\@H_502_2@(@H_502_2@rect2.@H_502_2@height@H_502_2@)"@H_502_2@)@H_502_2@
@H_502_2@
@H_502_2@
rect1 @H_502_2@赋给@H_502_2@ rect2 @H_502_2@后,改变@H_502_2@ rect1@H_502_2@的宽度,那么@H_502_2@ rect2@H_502_2@的宽度也改变了。@H_502_2@
@H_502_2@
@H_502_2@说明是让@H_502_2@rect2@H_502_2@指向@H_502_2@rect1@H_502_2@。@H_502_2@ @H_502_2@也就是它们两个指向同一个实例。@H_502_2@
*/@H_502_2@
@H_502_2@
@H_502_2@
@H_502_2@类的实例出现这种赋值操作的时候,比如将@H_502_2@rect1 @H_502_2@赋给@H_502_2@ rect2@H_502_2@,@H_502_2@
@H_502_2@这个是引用,不会拷贝一块新的内存;@H_502_2@
rect2 rect1 @H_502_2@ 实际上指向同一个实例,称之为同一个实例的两个引用。@H_502_2@
@H_502_2@那么如果有多个变量或常量指向同一个类的实例的时候,那么我们怎么@H_502_2@
@H_502_2@判断这多个常量@H_502_2@ @H_502_2@变量是否指向同一个实例呢?@H_502_2@
@H_502_2@
@H_502_2@如何判断@H_502_2@ rect2 rect1 @H_502_2@指向同一个实例呢?@H_502_2@
Swift@H_502_2@提供了一个恒等于@H_502_2@ @H_502_2@运算符@H_502_2@
*/@H_502_2@
@H_502_2@
@H_502_2@关系运算符@H_502_2@ == !=@H_502_2@
@H_502_2@判断两个对象是否指向同一个类的实例的。@H_502_2@
===@H_502_2@
!==@H_502_2@
*/@H_502_2@
@H_502_2@
@H_502_2@if@H_502_2@ rect1 === rect2 {@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"equal"@H_502_2@)@H_502_2@
}@H_502_2@
@H_502_2@
@H_502_2@if@H_502_2@ rect1 !== rect2 {@H_502_2@
@H_502_2@print@H_502_2@(@H_502_2@"Not equal"@H_502_2@)@H_502_2@
}@H_502_2@
@H_502_2@
*/@H_502_2@