swift学习日志—— 结构体和类
//结构体和枚举都是值类型,即值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。 //类是引用类型,与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身而不是其拷贝。 //恒等运算符 /* 等价于(===) 不等价于(!==) 请注意,“等价于”(用三个等号表示,===)与“等于”(用两个等号表示,==)的不同: “等价于”表示两个类类型(class type)的常量或者变量引用同一个类实例。 “等于”表示两个实例的值“相等”或“相同”,判定时要遵照设计者定义的评判标准,因此相对于“相等”来说,这是一种更加合适的叫法。 */ let instance = VideoMode() var instance2 = instance instance2.height = 5 if instance===instance2{ print("等价") } //===“等价于”表示两个类类型(class type)的常量或者变量引用同一个类实例,比较的是类型。 Swift和Objective-C的不同点 //Swift 中,许多基本类型,诸如String,Array和Dictionary类型均以结构体的形式实现。这意味着被赋值给新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。 //Objective-C 中NSString,NSArray和NSDictionary类型均以类的形式实现,而并非结构体。它们在被赋值或者被传入函数或方法时,不会发生值拷贝,而是传递现有实例的引用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |