特点
- 与函数指针统一的闭包
- 元组和多个返回值
- 泛型
- 对范围或集合进行快速简洁的迭代
- 结构体 支持 方法,扩展 和协议
- 函数式编程模式 例如map 和 filter
- 内置强大的错误处理功能
- 带有 do,guard,defer,repeat 关键字的强大控制流
- 不在依赖oc 的运行时机制
安全
swift 从一开始就设计的比 基于c语言的 OC 代码更加安全,并且消除了所有不安全代码。
- 变量在使用之前会被初始化
- 数组和整数会自动检查是否溢出
- 自动管理内存,oc中ARC只会自动管理NSObject对象引用计数,但是对于CF对象是不能管理的,但是swift 却不用处理CF对象内存管理的情况。
- 语法更加简洁,例如 变量用 var,常量用 let
- 默认情况下,swift 对象不可能为 nil,尝试创建或者使用nil 对象,会导致编译时错误,这使得编写代码更干净更安全,避免了运行时崩溃的一个常见原因。
然而有的情况下,nil 对象是被期望出现的,针对此情况,swift有个新的特性 为可选类型optionals
,一个optional
类型的对象,可能包含nil,但是swift语法会强制你使用?
来处理这种情况,也就是 声明一个'optional'类型,类型后面要加?
var name: String? //声明了一个name 变量,为字符串可选类型(name 可能为nil,也可能是一个确定的字符串)