swift 结构体(Structures)与类(Classes)的区别

这篇博客探讨了Swift中结构体(Structures)与类(Classes)的相同点和不同点。相同点包括定义属性、方法、下标、初始化构造器以及遵循协议的能力。类独有的特性包括继承、运行时类型检查、析构器和引用计数。值类型(Structure)在传递时复制,而引用类型(Class)传递时不复制,直接引用。此外,结构体在特定情况下会提供默认构造器,类则需要在某些条件下重写init方法。
摘要由CSDN通过智能技术生成

相同点:

  1. 可以定义属性(properties)
  2. 可以定义方法(methods)
  3. 可以定义下标(subscripts)来取其值
  4. 可以使用初始化构造器(init)来初始化实例
  5. 可以使用扩展
  6. 可以遵守协议,并且实现协议

不同点(类独有的):

  1. 可以继承自父类,即可继承
  2. 可以在运行时检查和解释类实例的类型,即运行时判断实例是哪个类
  3. 可以释放它分配的所有资源,即析构器(可以实现deinit()方法)
  4. 引用计数可以有多个引用,即实例的引用计数可以大于1
构建没有初始化方法的structure和Class:
struct Resolution {
   
    var width = 0
    var height = 0
}
///
class VideoMode {
   
    var resolution = Resolution()
    var interlaced = false
    var frameRate = 0.0
    var name: String?
}

此时Resolution和VideoMode的实例的创建方法如下:

///Resolution结构的初始化
let someResolution 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值