扩展:可以给现有的类、结构、枚举或者协议类型添加功能,甚至能够给无权访问的源代码添加扩展。但要注意扩展不能重写已经有的函数。添加计算实例或类型属性定义实例方法或者类型方法提供新的初始化方法定义下标定义和使用新的嵌套类型实现协议创建扩展计算属性:可以添加计算属性,但是不能添加存储属性,也不能为已经存在的属性创建property observer。初始化方法方法可变实例方法:修改 self 或其属性的结构体和枚举方法必须将实例方法标记为 mutating下标嵌套类型