Swift类型
Swift分为6种类型,它们分别是:class, struct, protocol, enum, functions, “Don’t care” type (generics)
class && struct
相同点:
stored var
computed var
constant let
functions
initializers
不同点:
| struct | class |
| —- | —- |
| 值类型:通过拷贝进行传递或赋值 | 引用类型:通过指针进行传递 |
| Copy on write | 自动引用计数 |
| 函数式编程:注重事物的功能性 | 面向对象编程:封装数据和函数到容器 |
| 没有继承 | 有继承:有唯一父类 |
| 构造器初始化所有变量 | 构造器不初始化变量 |
| 必须明确说明可变性:即必须用var声明 | 总是可变 |
| You “go to “ data structure | 用于特点情况 |
| 常见的struct: Int, String, Array, Dictionary | 常见的class:ViewModel |
protocol
精简的struct或class:有function和var,但没有具体实施
它是一个type:大部分protocol可以用在type可使用的地方
extension:通过protocol的extension去实施function
enum
离散值
Swift的enum有函数和计算变量
allCases: 可以遍历所有
Optional: 它是一个特殊的enum,有none和some(T)两个选项
functions
(parameterName: parameterType) -> returnType
generics
我们可能希望操作某个数据结构,但我们不在乎它是什么类型;但由于Swift是一个强类型语言,它必须有类型,因此我们使用泛型
例如:Array中的元素,Array