iOS Swift No.9 - 结构体与类

本文深入探讨Swift中的结构体和类,包括它们的定义、使用场景、属性访问以及值类型与引用类型的区别。通过实例解析,阐述结构体的成员逐一初始化器,类的继承和引用计数,以及如何利用恒等运算符检查对象身份。
摘要由CSDN通过智能技术生成

第九章 结构体与类

结构体和类其实是一个用通用且灵活的方法来构造代码块的东西。而我们可以用定义常量,变量或函数的方法来定义结构体和类的属性方法,以此来扩展该结构体或类的功能。通常很官方的理解还不如翻译成自己的白话文容易理解很概念性的东西。

1. Comparing Structures and Classes (结构体和类的对比)

结构体和类的相同点:

  1. 定义属性用于存储值
    define properties to store values
  2. 定义方法用于提供功能
    define methods to provide functionality
  3. 定义下标操作使得可以通过下标语法来访问实例所包含的值
    define subscripts to provide access to their values using subscript syntax
  4. 定义初始化用于生成初始化值
    define initialisers to set up their initial state
  5. 通过扩展以增加默认实现的功能
    be extended to expand their functionality beyond a default implementation
  6. 实现协议以提供某种标准功能
    conform to protocols to provide standard functionality of a certain kind

相比结构体,类有下面这些额外的优势:

  1. 继承 :允许一个类继承另一个类的特征
    Inheritance enables one class to inherit the characteristics of another
  2. 类型转换允许在运行时检查和解释一个类实例的类型
    Type casting enables you to check and interpret the type of a class instance at runtime.
  3. 析构器允许一个类实例释放任何其所被分配的资源
    Deinitializers enable an instance of a class to free up any resources it has assigned.
  4. 引用计数允许对一个类的多次引用
    Reference counting allows more than one reference to a class instance.

1.1 定义结构体和类的语法

定义结构体(structure)和类(class)的方法其实是比较相似的。用structclass关键字分别引出介绍该结构体和类。结构体和类的定义内容需要放在大括号内

struct SomeStructure {
   
    // 这里是结构体的定义
    // 结构体的名称(SomeStructure)要大些
}
class SomeClass {
   
    // 这里是类的定义
}

不管什么时候定义结构体或者类的时候都要用大写结构体或类的名称,命名结构体或类时等于说创建了一个新的swift 类型,用大写的原因是因为我们要匹配swift 类型(String Bool …)的命名规则,而在定义属性或方法的时候要用小写。注意区分。。。

下面是一个定义结构体和类的实例,从该例子中可以隐约看到结构体和类的共同点和不同点

struct Resolution {
   
    var width = 0
    var height = 0
}
class VideoMode {
   
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值