8.8 Swift恒等运算符

前端之家收集整理的这篇文章主要介绍了8.8 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@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@

@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@

@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@

@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@/**@H_502_2@

@H_502_2@特别注意的是,@H_502_2@

@H_502_2@只能用于类的实例@H_502_2@

@H_502_2@不能用于结构体@H_502_2@

*/@H_502_2@

猜你在找的Swift相关文章