Swift 4

一种强大但极易学习的编程语言。

Swift 是一种强大直观的编程语言,适用于 macOS、iOS、watchOS 和 tvOS。编写 Swift 代码是充满乐趣的互动过程,Swift 语法简洁,但表现力强,而且包含了开发者喜爱的现代功能。Swift 代码从设计上保证安全,同时还能开发出运行快如闪电的软件。

Swift 4 简介

以 Swift 3 的强大功能为基础,Swift 4 表现了出更卓越的健壮性和稳定性 —— 不但代码能与 Swift 3 兼容,也改善了标准资料库,添加了诸如智能键路径和序列化等功能;与此同时,它还可助您缩短构建时间并缩减 app 二进制文件的大小。

在 iPad 上学习 Swift

在 Swift Playgrounds 中,您创建的程序称为“playground”,会即时显现所写代码对应的结果。仅仅一行代码,就可以让奇迹发生。互动式课程可教授关键的编程概念,而额外的挑战和模板会激励您以新颖、有趣的方式探索代码,创造出独一无二的作品。甚至有些 playground 还可以通过蓝牙控制机器人、无人机和其他硬件配件。您可以与朋友分享自己的作品,也可以录制 playground 的实际应用视频并发到网上,一切都非常简单。

进一步了解 iPad 上的 Swift Playgrounds

开源

Swift 4 以开源形式在 Swift.org 上开发而成,其源代码、bug 跟踪器、邮件列表和常规开发版本将对所有人公开。在这个由众多开发者组成的广泛社区中,Apple 内部员工与成百上千位外部贡献者携手合作,让 Swift 愈加出色。Swift 已能够支持所有 Apple 平台和 Linux,社区成员正积极地努力将 Swift 移植到更多平台上。我们非常期待看到 Swift 以更多元的方式构建更安全、更快速的软件,同时也让编程变得更有趣。

要进一步了解 Swift 开源社区,请访问 Swift.org

源代码兼容模式

Swift 3 确立了编程语言应具有源代码级别的稳定性,现在,Swift 4 更进一步推出了源代码兼容功能。在 Swift 4 中,您不必修改自己的任何代码就能使用新版编译器。您可以先使用新的 Swift 4 编译器,然后按自己的进度每次一个模块地进行迁移,利用 Swift 4 的新功能。

您可以通过以下三种不同的模式使用新版 Swift 4 编译器:

  1. Swift 3 模式是适用于现有代码的默认模式,用于对使用 Swift 3 编译器构建的源代码进行构建。
  2. Swift 4 模式可让您使用 Swift 4 的新功能并得到性能优化,其中的某些功能可能需要迁移,不过这种迁移会比之前从 Swift 2.2 过渡到 Swift 3 更为容易。
  3. 混合模式让您能够利用二进制文件 (应由相同的编译器构建而成) 之间的互操作性。这种模式帮助开发者在创建的项目中混合使用 Swift 3 和 Swift 4 编写的软件包 (只要这些软件包都是使用 Swift 4 编译器构建的)。通过这种模式,开发者可以逐步地将代码中的特定部分迁移到 Swift 4。

Swift 4 中的新功能

  • 能够更快速、轻松地使用保持 Unicode 正确性的字符串,并增加了对创建、使用和管理子字符串的支持
  • 智能键路径为各种 Swift 类型提供类型安全、高效、可扩展的键值编码
  • 增强了用于创建和操纵 Dictionary 和 Set 类型的功能
  • 归档和序列化支持范围扩展至 struct 和 enum 类型,并在序列化为 JSON 和 plist 等外部格式时实现类型安全
  • 强制式独占访问内存

现代化

Swift 是编程语言的最新研究成果,并融合了构建 Apple 平台的数十年经验。借鉴于 Objective-C 的命名参数以简洁的语法表示,让您可以更轻松地阅读和维护以 Swift 编写的 API。推断类型让代码更为简洁且不易出错,而模块则消除了标头,改为提供名称空间。内存会自动管理,您甚至无需键入分号。正是这些富有前瞻性的概念,成就了这种易用又有趣的编程语言。

extension String {
						var banana : String {
							let shortName = self.dropFirst()
							return "\(self) \(self) Bo B\(shortName) Banana Fana Fo F\(shortName)"
						}
					}
					
					let bananaName = "Jimmy".banana		// "Jimmy Jimmy Bo Bimmy Banana Fana Fo Fimmy"

Swift 还有许多其他功能,可以让您的代码更富表现力:

  • 与函数指针统一的闭包
  • 元组和多值返回
  • 泛型
  • 对范围或集合进行快速、简洁的迭代
  • 支持方法、扩展和协议的结构
  • 函数式编程模式,例如映射和过滤
  • 使用 try/catch/throw 处理原生错误

Xcode 中的 Playground 和 REPL

与 iPad 上的 Swift Playgrounds 类似,Xcode 中的 Playground 让编写 Swift 代码变得非常简单有趣。键入一行代码,结果便会立即显现。然后,您可以从代码处快速查看结果,或将结果直接固定在这行代码下方。结果视图可以显示图形、结果列表或某个值随时间而变化的图形。您可以打开“时间轴助理”来观看复杂的视图演变和动画效果 (非常适合用于试验新的 UI 代码),或是在您编码时播放 SpriteKit 动画场景。在 playground 中优化好代码后,即可将代码移到您的项目中。

Read-Eval-Print-Loop (REPL)

Xcode 中的 LLDB 调试控制台内置了一个 Swift 语言互动式版本。您可以使用 Swift 语法来评估现有 app 并与它互动,也可以编写新的代码来查看它在脚本式环境中的运作情况。这项功能可从 Xcode 控制台内或“终端”中使用。

Package Manager

Swift Package Manager 在 Swift 3 中首次推出,它是一个用于构建 Swift 资料库和可执行文件的跨平台工具,使用它可轻松地创建和管理依赖项。Swift 4 为 Swift Package Manager 增加了新的工作流程特性和更完整的 API。现在,您可以更轻松地进行以下操作:在标记首个正式发行版本之前以串联方式开发多个软件包,同时处理多个软件包,以及在本地对不能控制的依赖项的源代码进行修改。新的 API 让软件包作者可以定义软件包能为客户提供哪些产品,以及自定源代码在磁盘上的组织方式。另外,用来创建软件包的整体 API 现在也更加简洁清楚,同时可保持与旧版软件包的源代码兼容性。

快速而强大

在最初设想时,我们就希望 Swift 实现快速运行的效果。利用出色的高性能 LLVM 编译器,Swift 代码会转换为经过优化的、可充分利用现代硬件的原生代码。此外,语法和标准资料库也进行了调整,使最浅显的编码方式也能有最佳表现。

Swift 是在 C 语言和 Objective-C 语言的基础上开发的全新编程语言。它包含诸如类型、流控制和运算符等底层基元。此外,它还提供面向对象的特性,例如类、协议和泛型,为 Cocoa 和 Cocoa Touch 开发者提供了他们所需的性能和功能。

从设计上确保安全

Swift 可避免全部类型的不安全代码。变量在使用前会始终先进行初始化,数组和整数会得到检查以防溢出,并且内存会自动管理。语法经过调整,让您可轻松定义目标意图。例如,只需三个字符的关键词就可定义变量 ( var ) 或常量 ( let )。

Swift 的另一项安全功能是,在默认情况下 Swift 对象永远不会是 nil。实际上,Swift 编译器会在您尝试创建或使用 nil 对象时显示编译时错误,阻止您继续操作。这使得代码编写变得更简洁、更安全,并且可以防止 app 中出现大规模的运行时崩溃。但是,在某些情况下,运用 nil 是有效且适当的。针对这类情况,Swift 提供了一项创新功能,称为“可选类型”。可选类型可以包含 nil,但是 Swift 语法强制要求您利用 ? 语法来安全地处理 nil,该语法向编译器指示您理解这个行为并将安全地处理它。

Objective-C 互操作性

您可以立即使用 Swift 创建全新的 app,或开始使用 Swift 代码在您的 app 中实施新的特性和功能。Swift 代码可以与您现有的 Objective-C 文件在同一个项目中共存,并可完全访问 Objective-C API,因此您可以轻松地采用这些文件。

要开始使用 Swift,请下载 Xcode 并按照“资源”标签页上提供的教程操作。