版本兼容性

这本书讲述的是 Swift 4.0,它是 Xcode 9 中包含的默认版本。你可以使用 Xcode 9 来编译用 Swift 4 或 Swift 3 写的代码。

注意

当 Swift 4 编译器处理 Swift 3 代码,他以 3.2 版本识别——这就意味着你可以使用条件代码块比如 #if swift(>=3.2) 来写兼容多个 Swift 编译器的代码。

当你使用 Xcode 9 来编译 Swift 3 代码,Swift 4 中的大部分新功能都是可用的。只有如下功能是 Swift 4 代码独享的:

  • 拆分字符串操作返回 Substring 类型,而不是 String ;
  • @objc 标签在更少的地方被推断;
  • 同一文件中类型的扩展可以访问类型中的私有成员。

用 Swift 4 编写的编译目标可以依赖于用 Swift 3 编写的编译目标,反之亦然。也就是说如果你的项目很大且分成了多个框架,你可以一次从 Swift 3 迁移到 Swift 4 一个框架。