- swift是静态语言 oc是动态语言
- swift是面向协议编程 oc是面向对象编程
- 纯swift的函数派发方式是直接派发和函数表派发, 兼容OC时支持消息机制派发 oc则总是使用消息机制派发,但允许使用C语言直接派发(swift效率高于oc的原因之一)
- swift是强类型语言,编译器会在编译时对代码做类型检测 oc不是,oc中的id类型可以转化成任意类型,在运行时才会对代码进行类型检测,所以swift是类型安全的语言
- swift注重值类型, swift中的struct是值类型 oc注重指针和引用
- swift去掉了C语法兼容的包袱,代码精炼.主要代码没有那么多的语法糖包裹,运行速度变快了.尤其是在大循环里调用函数,调用开销很多都消耗在了函数包装上.(swift效率高于oc的原因之一)
- swift是貌似脚本的编译语言,底层仍然是cocoa/ cocoa touch类库, 上面弄出个简练的脚本层调用这些库, 由于LLVM编译器及其优秀, 所以编译成中间机器码时,反而比复杂的OC调用这些库更快些(swift效率高于oc的原因之一) 这是历史上第一个同时有类型推断 类脚本的 函数型 的编译语言 开发者就是写clang llvm的大牛
- swift支持函数式编程 oc本身不支持,需要引入ReactiveCocoa库才支持函数式编程
swift支持各种方便快捷的高阶函数,如: map, reduce, filter等
Swift 和 Objective-C的区别
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Swift是静态语言。OC是动态的语言。Swift要变成动态,需要继承NSObject或者桥接OC来实现。 Swi...
- Swift和Objective-C的联系 Swift和Objective-C共用一套运行时环境,Swift的类型可...
- 中秋第一天,益成长携手乐朗乐读和阳光未来共同举办了庆中秋迎国庆亲子活动。一起感受浓浓的节日氛围,一起感受亲子时光。...