关于 Swift
Swift 是一种通用编程语言,对新手友好,同时也足够强大,能满足专业需求。它快速、现代、安全,并且编写起来充满乐趣。
- Swift 是通用且现代的:适用于从系统编程到移动和桌面应用,再到云服务的各种场景。
- Swift 是安全的:未定义行为是安全的敌人,且最好在软件投入生产前就捕获错误。Swift 让最明显的路径成为最安全的选择。
- Swift 运行快,编写也高效:它提供可预测且一致的性能,与基于 C 的编程语言性能相当,同时没有牺牲对开发的友好性。
- Swift 既简单易学又功能强大:从简单的单行代码的“Hello, World!”到拥有数十万行代码的大型应用,Swift 都能按你的需求扩展。
工具
工具是 Swift 生态系统的重要组成部分。我们致力于与开发者的工具集良好集成,快速构建,提供出色的诊断功能,并支持交互式开发体验。工具能够极大地提升编程的能力,比如 Xcode 中基于 Swift 的 Playground,或在处理 Linux 服务端代码时的基于 Web 的 REPL。
特性
Swift 拥有许多特性,使代码更易读易写,同时赋予开发者在真正系统编程语言中所需的控制力。Swift 支持类型推断,让代码更简洁、更不易出错;Swift 的模块消灭了头文件并提供了命名空间;Swift 的内存管理是自动化的;Swift 代码中甚至无需输入分号。此外,Swift 借鉴了其他语言的优势,例如从 Objective-C 引入的命名参数,通过简洁的语法表达,使 Swift 的 API 易于阅读和维护。
Swift 的特性相辅相成,打造出一种强大却又有趣的实用编程语言。Swift 的一些其他的特性包括:
- 闭包与函数指针的统一
- 元组与多返回值的支持
- 泛型
- 对范围(Range)和集合(Collection)类型快速简洁的遍历
- 支持方法(method)、扩展(extension)和协议(protocol)的结构体(Struct)
- 函数式编程模式,例如 map 和 filter
- 内置强大的错误处理机制
- 使用
do
、guard
、defer
和repeat
关键字实现高级控制流
安全
Swift 从一开始就设计得比基于 C 的语言更安全,并消除了各种不安全代码的问题。变量在使用前必须初始化,数组和整数会进行溢出检查,内存管理是自动化的。语法经过优化,便于清晰表达意图,例如使用简单的三个字符关键字定义一个变量(var
)或常量(let
)。
另一个安全特性是 Swift 对象(object)在默认情况下不能为 nil
,尝试创建或使用 nil
对象会导致编译时错误。这使代码编写更清晰、更安全,并避免了一种运行时崩溃的常见原因。然而,在某些情况下,nil
是合适的,为此 Swift 提供了一项创新特性,称为 可选值(optionals)。可选值可以包含 nil
值,但 Swift 的语法要求你使用 ?
向编译器明确表示你理解这种行为并会安全地处理它,从而强制实现安全的可选值操作。
平台支持
以开源方式开发 Swift 最令人兴奋的方面之一是知道它现在可以自由移植到各种平台、设备和应用场景中。
我们的目标是为所有平台提供 Swift 的源代码兼容性,即使具体的实现机制可能因平台而异。一个主要例子是,Apple 平台包含 Objective-C 运行时,这是访问 UIKit 和 AppKit 等 Apple 平台框架所必需的。而在其他平台(如 Linux)上,没有 Objective-C 运行时,因为它并非必要。
Swift 核心库项目旨在通过提供基本 Apple 框架(如 Foundation)的可移植实现来扩展 Swift 的跨平台能力,而无需依赖 Objective-C 运行时。尽管核心库目前处于开发的早期阶段,但最终将提升 Swift 代码在各个平台上的源代码兼容性。
Apple 平台
开源的 Swift 可以在 Mac 上使用,并可以以所有的 Apple 平台作为编译目标:iOS、macOS、watchOS 和 tvOS。此外,开源 Swift 的二进制构建与 Xcode 开发工具进行了集成,包括对 Xcode 构建系统的完整支持、编辑器中的代码补全和集成调试功能,让任何人都可以在熟悉的 Cocoa 和 Cocoa Touch 开发环境中尝试最新的 Swift 功能。
Linux
开源的 Swift 可以在 Linux 上用于构建 Swift 库和应用程序。开源二进制构建提供了 Swift 编译器和标准库、Swift REPL 和调试器(LLDB),以及核心库,因此开发者可以立即开始使用 Swift 开发。
Windows
开源的 Swift 可以在 Windows 上用于构建 Swift 库和应用程序。开源二进制构建提供 C/C++/Swift 工具链、标准库和调试器(LLDB),以及核心库,因此开发者可以立即开始使用 Swift 开发。同时,发布版本中包含 SourceKit-LSP,支持开发者在自己选择的 IDE 中高效工作。
新平台
我们迫不及待地想与大家一起将 Swift 带到更多新的平台上。我们坚信,这门我们热爱的编程语言能够让软件变得更安全、更快速、更易于维护。我们热切期待你的加入,共同将 Swift 推广到更多计算平台上。
Swift.org 与开源
2015 年 12 月 3 日,Swift 语言、支持库、调试器以及包管理器以包括运行时库例外条款的 Apache 2.0 许可证 的形式发布,Swift.org 应运而生来主持该项目。源码托管在 GitHub 上,任何人都可以轻松获取代码、自行构建,甚至通过创建拉取请求(pull requests)为项目贡献代码。我们欢迎所有人参与,即使只是提交一个错误报告。网站上也提供了出色的入门指南。
该项目由核心工程师团队管理,他们通过与社区合作来推动战略方向,同时由一批代码所有者负责日常项目管理。技术领导者来自贡献者社区,任何人都有机会通过贡献赢得领导 Swift 某一领域的权利。社区概览中提供了关于 Swift 社区是如何进行管理的详细信息。
项目
Swift 语言被整理为一系列项目,每个项目都有自己的代码库。目前的项目列表包括:
- Swift 编译器命令行工具
- 作为语言的一部分打包的标准库
- 提供更层级功能的核心库
- 包含 Swift REPL 的 LLDB 调试器
- 用于分发和构建 Swift 源代码的 Swift 包管理器
- 用于支持 Xcode 中 Playground 功能的 Xcode Playground 支持