Swift的对象和类
- 使用 class 和类名来创建一个类。
- 类中属性的声明和常量、变量声明一样,唯一的区别就是它们的上下文是类
- 方法和函数声明也一样
- 要创建一个类的实例,在类名后面加上括号。使用点语法来访问实例的属性和方法。
- swift引入构造函数来初始化类实例。使用 init 来创建一个构造器
- 使用 deinit 创建一个析构函数,要在删除对象之前进行一些清理工作,类似于dealloc
- 子类的定义方法是在它们的类名后面加上父类的名字,用冒号分割
- 子类如果要重写父类的方法的话,需要用 override 标记
- 除了储存简单的属性之外,属性可以有 getter 和 setter 。
Swift的枚举和结构体
- 使用 enum 来创建一个枚举,
- 枚举可以包含方法。
enum Rank: Int {
case Ace = 1
case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten
case Jack, Queen, King
func simpleDescription() -> String {
switch self {
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return String(self.rawValue)
}
}
}
结构体
- 使用 struct 来创建一个结构体
- 结构体和类有很多相同的地方,比如方法和构造器
- 它们之间最大的一个区别就是结构体是传值,类是传引用。
- mutating 关键字用来标记一个会修改结构体的方法
协议和扩展
- 使用 protocol 来声明一个协议。
protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}
- 类、枚举和结构体都可以实现协议
- 使用 extension 来为现有的类型添加功能,比如新的方法和计算属性
- 可以使用扩展在别处修改定义,甚至是从外部库或者框架引入的一个类型,使得这个类型遵循某个协议。
泛型
- 在尖括号里写一个名字来创建一个泛型函数或者类型。
-