这里总结了其中一些:
- swift 不分 .h 和 .m ,只有一个 .swift 文件,文件的数量和后缀与 OC 不同
- swift引入了命名空间,从此不用再import其他文件
- swift 语言代码语句后不需要加";"
- swift 语言比较简短简洁
- swift 定义变量或常量使用 var 或 let
- 字符串,swift “”,OC @“”
- switch 语句,swift 可以是各种数据类型,OC 中的switch语句,不能判断对象类型, 只能判断基本类型中的整数
- 判断语句 if let,gurad
- 可选(Optional)类型。swift增加了可选类型处理值缺失的情况。nil的含义不同,可选类型比 Objective-C 中的 nil 指针更加安全。
- OC 中定义的类,都是直接或者间接继承NSObject类的,swift 可以直接定义一个基类,不继承任何类
- swift元祖类型,支持运算符重载
- swift支持泛型,OC只支持轻量泛型
- swift函数嵌套
- swift的协议不仅可以被类实现,还可以被struct和enum实现
- swift是静态语言,OC是动态语言。
- swift偏重于面向协议的编程,OC面向对象编程。
- swift注重值类型,OC注重引用类型。
- swift支持函数式编程
这些区别在我们日常编程中通过对比都能体会的到。从 OC 转到 Swift 的开发者,应尽量避免用 OC 的编程习惯来写 Swift 代码,认识和接纳 Swift 这门语言,会深深的喜欢上 Swift 编程。