- 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的类型可...
- 中秋第一天,益成长携手乐朗乐读和阳光未来共同举办了庆中秋迎国庆亲子活动。一起感受浓浓的节日氛围,一起感受亲子时光。...