【Swift】结构体和类
Swift中结构体和类有很多共同点 - 定义属性用于存储值 - 定义方法用于提供功能 - 定义下标操作使得可以通过下标语法来访问实例所包含的值 - 定义构造器用于生成初始化值 - 通过扩展以增加默认实现的功能 - 实现协议以提供某种标准功能 与结构体相比,类还有如下的附加功能: - 继承允许一个类继承另一个类的特征 - 类型转换允许在运行时检查和解释一个类实例的类型 - 析构器允许一个类实例释放任何其所被分配的资源 - 引用计数允许对一个类的多次引用 结构体和枚举是值类型 类是引用类型 恒等运算符 ? 等价于(===) ? 不等价于( !== )
类和结构体的选择 按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体: ? 该数据结构的主要目的是用来封装少量相关简单数据值。 ? 有理由预计该数据结构的实例在被赋值或传递时,封装的数据将会 被拷贝而不是被引用。 ? 该数据结构中储存的值类型属性,也应该被拷贝,而不是被引用。 ? 该数据结构不需要去继承另一个既有类型的属性或者行为。 举例来说,以下情境中适合使用结构体: Swift 中,许多基本类型,诸如 String , Array 和 Dictionary 类型均以结构体的形式实现。这意味着被赋值给 新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。 Objective-C 中,不同的是NSString , NSArray 和 NSDictionary 类型均以类的形式实现,而并非结构体。它们在被赋值或 者被传入函数或方法时,不会发生值拷贝,而是传递现有实例的引用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |