之前做OC开发的时候就经常会听到同行议论Swift,虽然会有安全或者牛掰,快速等等的评价,但最多的还是1.x-2.x或者到某一个新版本之后以前的东西就不能用了,也导致我开发一直都还是使用OC,毕竟没谁希望自己写的东西明天一更新就又得重写,新的机制和新的API还得学习,但自从Swift5 ABI开始稳定之后一直就想找个机会系统的学下,但一直忙(懒),拖到了现在
Swift是开源的,其GitHub的地址是https://github.com/apple/swift
编译
Swift的底层是C++从开源项目看,C++和Swift代码占了整个Swift语言的百分之95.4,基本语言最终都是会编译成汇编语言,然后再进一步编译成机械语言来给硬件处理,这个没什么好说的,相较而言,从编译来说Swift和OC的区别在于编译器,理论上Swift基于C++走Clang应该是没跑了,但实际上并不是,Swift走的是一个叫SwiftC的编译器,具体区别如图所示
Clang和swiftc这种叫做编译器前端,LLVM叫做编译器后端,所以准确一点说,Swift和OC区别在于编译器前端
Clang流程我之前写过就不赘述了,swiftc大概流程图如下