关于 Swift

Swift 是一种通用的编程语言,它对新手平易近人,对专家功能强大。它快速、现代、安全,并且编写起来令人愉悦。

工具

工具是 Swift 生态系统的关键组成部分。我们努力与开发人员的工具集良好集成,快速构建,呈现出色的诊断信息,并实现交互式开发体验。工具可以使编程更加强大,就像基于 Swift 的 Playground 在 Xcode 中所做的那样,或者当使用 Linux 服务器端代码时,基于 Web 的 REPL 可以做到这一点。

特性

Swift 包含使代码更易于阅读和编写的功能,同时为开发人员提供真正的系统编程语言所需的控制。Swift 支持类型推断,使代码更简洁且不易出错,模块消除了头文件并提供了命名空间。内存是自动管理的,您甚至不需要键入分号。Swift 还借鉴了其他语言,例如从 Objective-C 引入的命名参数以简洁的语法表示,这使得 Swift 中的 API 易于阅读和维护。

Swift 的特性旨在协同工作,以创建一种功能强大且使用起来有趣的语言。Swift 的一些附加特性包括

安全性

Swift 从一开始就被设计得比基于 C 的语言更安全,并消除了整个类别的不安全代码。变量总是在使用前初始化,数组和整数会检查溢出,并且内存是自动管理的。语法经过调整,可以轻松定义您的意图 — 例如,简单的三个字符的关键字定义变量 (var) 或常量 (let)。

另一个安全特性是,默认情况下 Swift 对象永远不能为 nil,尝试创建或使用 nil 对象会导致编译时错误。这使得编写代码更加简洁和安全,并防止了运行时崩溃的常见原因。但是,在某些情况下,nil 是合适的,对于这些情况,Swift 有一个称为 optionals 的创新特性。Optional 可能包含 nil,但 Swift 语法强制您使用 ? 安全地处理它,以向编译器表明您理解该行为并将安全地处理它。

平台支持

在开放环境中开发 Swift 最令人兴奋的方面之一是,它现在可以自由地移植到各种平台、设备和用例中。

我们的目标是在所有平台上为 Swift 提供源代码兼容性,即使实际的实现机制可能因平台而异。主要的例子是 Apple 平台包含 Objective-C 运行时,这是访问 Apple 平台框架(如 UIKit 和 AppKit)所必需的。在其他平台(如 Linux)上,不存在 Objective-C 运行时,因为这不是必需的。

Swift 核心库项目旨在通过提供基本 Apple 框架(例如 Foundation)的可移植实现,而无需依赖 Objective-C 运行时,来扩展 Swift 的跨平台功能。尽管核心库仍处于早期开发阶段,但它们最终将为所有平台上的 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 带到更多的计算平台。

和开源

2015 年 12 月 3 日,Swift 语言、支持库、调试器和包管理器在 Apache 2.0 许可证(带有运行时库例外)下发布,并创建了 来托管该项目。源代码托管在 GitHub 上,任何人都可以轻松获取代码、自行构建,甚至创建拉取请求以将代码贡献回项目。欢迎所有人,即使只是提交错误报告。该站点上还提供了出色的“开始使用”指南。

该项目由一个核心工程师团队管理,该团队通过与社区合作来推动战略方向,以及一组负责日常项目管理的代码所有者。技术领导者来自贡献者社区,任何人都可以赢得领导 Swift 某个领域的权利。“社区概览”包含有关 Swift 社区如何管理的详细信息。

项目

Swift 语言作为一个项目集合进行管理,每个项目都有自己的存储库。当前的项目列表包括