Swift中结构体(structures)和类(classes)的选择

在Swift中,结构体和类有许多相似特性,但有本质区别。优先选择结构体来描述数据结构,利用其值类型特性保证数据安全。然而,为了利用Objective-C的特性或需要区分引用时,可以选择类。结构体可通过协议模拟继承行为,提供灵活性。在处理网络响应时,结构体是理想选择,只需关注数据解析,而非实例身份。
摘要由CSDN通过智能技术生成

在Swift中结构体和类有很多相似的特性,结构体似乎是swift中一个非常常用的数据类型,而类在oc中是最习惯使用的类型,开发中对类和结构体如何抉择呢?

首选结构体

尽量使用结构体来描述你的数据结构
swift中的结构体有很多其他语言的结构体所不具备的:可以包含储存属性、计算属性、方法;遵循协议;Swift的标准库和Foundation的基本类型大量使用了结构体,如数字、字符串、数组、字典
结构体是值类型,而类是引用类型,结构体对全局的其他作用域是不可见的,除非你特地去实现这个功能。所以你可以更放心的对局部的结构体进行修改而不担心影响到整体代码的逻辑。

使用类获取OC特性

使用类获取OC已经成熟的组件功能,如处理数据的OC API、对特定类层次结构的OC类进行子类化

使用类来区别引用

因为类是引用类型,不同类实例的每个储存属性相同的值时,恒等运算符仍然会视他们为不同。这样的作用是,引用类型对全局共享一个实例的其他作用域是可见的,即内容的修改会影响到其他的引用的内容。
通常在一些文件操作句柄的类、网络连接的管理类、硬件中介类等使用类的类型比较合适。

使用结构体作为一个值

当不需要判断两个值是否是同一个引用时,首选结构体类型。如网络请求中,我们无需关心服务端实际数据的准确性,只需要把响应体中的数据作为实体类来解释即可,如:

struct PenPalRecord<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值