类是面向对象编程,结构体是面向协议编程。
协议是一组属性和方法的定义,约定好属性和定义是什么样,如果一个类型要遵守这个协议,就要实现这个协议所定义的全部内容。面向对象编程的核心是继承、封装和多态。
面向协议编程是Apple在2015年WWDC上提出 Swift的一种编程范式,推荐开发者使用。
类和结构体的共同点
定义属性用于存储值
定义方法用于提供功能
定义下标操作用于允许使用下标语法访问实例所包含的值
定义构造器用于生成初始化值
通过扩展增加默认实现的功能
实现协议以提供某种标准功能
Swift 中类所特有的功能
继承允许一个类继承另一个类的特征
类型转换允许运行检查和解释一个类实例的类型
解构器允许一个类实例释放任何其所被分配的资源
引用计数允许对一个类的多次引用
什么时候使用类或结构体
当我们需要值语义的时候使用结构体 (值语义指一个对象被系统复制之后,与被复制的对象之前毫无关系,彼此独立发生改变互不影响)。
当需要引用语义的时候使用类 (引用语义指一个对象被系统复制之后,与被复制的对象之间依然共享底层资源,其中一个的改变会影响另一个对象的改变)。
定义一个类
class OneClass {
//定义一个类
var Name = "码客南君"
var age = 2
}
定义一个结构体
struct OneStructure {
//定义一个结构体
var Name = "码客南君"
var age = 2
}
类和结构体实例
let MarkClass = OneClass()
let MarkStructure = OneStructure()
访问属性
print("The name of MarkStructure is \(MarkStructure.name)")
初始化结构体中的属性
let MarkStructureTWO = OneStructure( name: "码客南君2", age: 3)
以上就是Swift中类和结构体的基础介绍。