swift学习日志—— 结构体和类

前端之家收集整理的这篇文章主要介绍了swift学习日志—— 结构体和类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

//结构体和枚举都是值类型,即值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。@H_403_3@

//类是引用类型,与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身而不是其拷贝。@H_403_3@

//恒等运算符@H_403_3@

/*@H_403_3@

等价于(===)@H_403_3@

不等价于(!==)@H_403_3@

请注意,等价于(用三个等号表示,===)与等于(用两个等号表示,==)的不同:@H_403_3@

等价于表示两个类类型(class type)的常量或者变量引用同一个类实例。@H_403_3@

等于表示两个实例的值相等相同,判定时要遵照设计者定义的评判标准,因此相对于相等来说,这是一种更加合适的叫法。@H_403_3@

*/@H_403_3@

let instance = VideoMode()@H_403_3@

var instance2 = instance@H_403_3@

instance2.height = 5@H_403_3@

if instance===instance2{@H_403_3@

print("等价")@H_403_3@

}@H_403_3@

//===“等价于表示两个类类型(class type)的常量或者变量引用同一个类实例,比较的是类型。@H_403_3@


@H_403_3@

Swift和Objective-C的不同点
@H_403_3@

//Swift 中,许多基本类型,诸如StringArrayDictionary类型均以结构体的形式实现。这意味着被赋值给新的常量或变量,或者被传入函数方法中时,它们的值会被拷贝。@H_403_3@

//Objective-C NSStringNSArrayNSDictionary类型均以类的形式实现,而并非结构体。它们在被赋值或者被传入函数方法时,不会发生值拷贝,而是传递现有实例的引用。@H_403_3@

猜你在找的Swift相关文章