8.8 Swift恒等运算符
/** 恒等运算符 */
class 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()
var rect2: Rect = rect1
print("---------------->") print("rect1.width==(rect1.width)") print("rect1.height==(rect1.height)")
// 改变rect1 的宽度 rect1.width = 100.0
print("rect2.width==(rect2.width)") print("rect2.height==(rect2.height)")
/** 我们可以看到 rect1 赋给 rect2 后,改变 rect1的宽度,那么 rect2的宽度也改变了。
说明是让rect2指向rect1。 也就是它们两个指向同一个实例。 说明类是引用类型 */
/** 类的实例出现这种赋值操作的时候,比如将rect1 赋给 rect2, 这个是引用,不会拷贝一块新的内存; rect2 rect1 实际上指向同一个实例,称之为同一个实例的两个引用。 那么如果有多个变量或常量指向同一个类的实例的时候,那么我们怎么 判断这多个常量 变量是否指向同一个实例呢?
如何判断 rect2 rect1 指向同一个实例呢? Swift提供了一个恒等于 运算符 */
/** 关系运算符 == != 判断两个对象是否指向同一个类的实例的。 === !== */
if rect1 === rect2 { print("equal") }
if rect1 !== rect2 { print("Not equal") }
/** 特别注意的是, 只能用于类的实例 不能用于结构体 */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |