迅速

强大的编程语言,也很容易学习。

Swift 是 macOS、iOS、watchOS、tvOS 等强大而直观的编程语言。编写 Swift 代码是交互式和有趣的,语法简洁而富有表现力,Swift 包含开发人员喜欢的现代功能。Swift 代码在设计上是安全的,但也生产运行闪电般的软件

    介绍斯威夫特 5

    斯威夫特 5 makes it dramatically easier to release your apps. Because the Swift runtime is now built into iOS, macOS, tvOS, and watchOS, your app no longer needs to bundle this library for these latest OS releases. Users who download an app built with Swift from the 应用商店 will get a smaller app and a faster download.

    其他功能

    • 使用 UTF-8 编码重新实现字符串,这通常会导致更快的代码
    • 默认情况下在调试和发布版本中强制对内存的独占访问
    • 标准库中的 SIMD 矢量和结果类型
    • 字典和集的性能改进
    • 支持动态可调用类型,以提高与动态语言(如 Python、JavaScript 和 Ruby)的互操作性

    现代

    Swift 是编程语言的最新研究的成果,结合数十年来构建 Apple 平台的经验。命名参数以简洁的语法表示,使 Swift 中的 API 更易于阅读和维护。更妙的是,您甚至不需要键入分号。推断类型使代码更简洁,不易出错,而模块则消除了标头并提供命名空间。为了最好地支持国际语言和表情符号,字符串是 Unicode 更正,并使用基于 UTF-8 的编码来优化各种用例的性能。使用严格的确定性引用计数自动管理内存,将内存使用量降至最低,而无需垃圾回收开销。

    结构播放器 = var 名称:字符串 var 高分: int = 0 var 历史记录: [int] = init(# 名称:字符串) =自我名称 = 名称 + 名称 + var 播放器 =玩家("托马斯"

    使用现代、简单的语法声明新类型。为实例属性提供默认值并定义自定义初始化程序。

    扩展玩家改变 func更新分数(* 新分数:int) =历史记录追加(新分数)如果高分 < newScore =打印("]分数)) !新的高分 +名称) ! 🎉"高分 = 新分数 + +播放器更新分数50// 打印"50!托马斯的新高分!🎉"// 播放器.高分 = 50

    使用扩展向现有类型添加功能,并使用自定义字符串插值减少样板。

    扩展播放器可编码可电子可,可等 [ ]导入基础允许编码器 = JSONEncoder()尝试编码器编码玩家打印玩家// 打印"托马斯,游戏玩: 1, 高分: 50"

    快速扩展自定义类型,以利用强大的语言功能,如自动 JSON 编码和解码。

    玩家 +获得玩家() // 排序球员,以最好的高分第一排名 +玩家已排序(由: * 玩家1, 球员2玩家1.高分 + 播放器2。高评分 +) // 创建一个只有玩家姓名的数组排名名称 =排名地图• $0。姓名 |// "艾琳","罗莎娜","托马斯"]

    使用简化的闭包执行强大的自定义转换。

    这些前瞻性的概念产生了一种有趣且易于使用的语言。

    Swift 还具有许多其他功能,可使代码更具表现力:

    • 功能强大且易于使用的泛型
    • 使编写通用代码更容易的协议扩展
    • 一流函数和轻量级闭包语法
    • 在范围或集合上快速、简洁地迭代
    • 元数和多个返回值
    • 支持方法、扩展和协议结构
    • 枚举可以具有有效负载和支持模式匹配
    • 函数式编程模式,例如地图和过滤器
    • 使用try/catch/throw进行本机错误处理

    专为安全而设计

    Swift 消除了整个类别的不安全代码。变量总是在使用之前初始化,数组和整数检查溢出,内存自动管理,并强制对内存防护进行独占访问,防止许多编程错误。语法经过调整,便于定义您的意图 , 例如,简单的三字符关键字定义变量(var) 或常量(let )。Swift 大量利用值类型,尤其是对于常用类型(如数组和字典)。这意味着,当您复制该类型的内容时,您知道它不会在其他地方被修改。

    另一个安全功能是,默认情况下,Swift 对象永远不会是。事实上,Swift 编译器将阻止您尝试创建或使用具有编译时错误的对象。这使得编写代码更加干净和安全,并防止应用中出现大量运行时崩溃。但是,在某些情况下,是有效和适当的。对于这些情况,Swift 具有一种称为可选的创新功能。可选的包含,但 Swift 语法强制您使用?语法安全地处理它,以向编译器指示您了解行为并将安全地处理它。

    扩展收藏哪里元素 =播放器 [ //] 返回所有玩家的最高分数,// 或"nil",如果集合是空的 func最高评分播放器() -*玩家?•返回自我最大值(由: = $0。高分数 < $1.高评分 +)    } }

    当您可能有实例从函数返回,或者您可能没有返回时,请使用可选。

    如果让最好的球员和玩家最高评分播放器() • 记录持有人 = """记录保持者是 *(最佳播放器.名称),高分为 [(最佳玩家.高分)!        "" ]否则 • 记录保持者 = "尚未玩游戏 "。打印(记录保持者)// 纪录保持者是艾琳,高分为271! 最高分数 =玩家最高评分播放器()?.高分数0 // 最高分 = 271

    可选绑定、可选链接和零合并等功能可让您使用可选值安全高效地工作。

    快速而强大

    从它最早的概念,斯威夫特是建立为快速。使用令人难以置信的高性能 LLVM 编译器技术,Swift 代码被转换为优化的本机代码,充分利用现代硬件。语法和标准库也进行了调整,使编写代码的最明显方法也执行最佳,无论它是在手表上运行在手腕上还是跨服务器群集运行。

    Swift 是 C 语言和 Objective-C 语言的继承者。它包括低级基元,如类型、流控制和运算符。它还提供面向对象的功能,如类、协议和泛型,为 Cocoa 和 Cocoa Touch 开发人员提供了他们所要求的性能和功能。

    伟大的第一语言

    斯威夫特可以打开通往编码世界的大门。事实上,无论你还在上学还是探索新的职业道路,它被设计成任何人的第一种编程语言。对于教育工作者来说,苹果创建了免费课程,在课堂内外教授 Swift。首次编码者可以下载 Swift 游乐场,这是一款适用于 iPad 的应用程序,它使 Swift 代码的互动和乐趣开始。

    有抱负的应用开发人员可以访问免费课程,学习在 Xcode 中构建他们的第一个应用程序。世界各地的 Apple 商店今天举办 Apple 编码与应用会议,您可以在这里获得 Swift 代码的实践经验。

    了解有关 Apple Swift 教育资源的更多信息

    源和二进制兼容性

    使用Swift 5,,您无需修改任何 Swift 4 代码,就可以使用新版本的编译器。相反,您可以开始使用新的编译器,并以自己的节奏迁移,利用新的Swift 5 功能,一次一个模块。Swift 5现在引入了应用程序的二进制兼容性。这意味着您不再需要在面向当前和未来操作系统版本的应用中包括 Swift 库,因为 Swift 库将包含在未来的每个操作系统版本中。你的应用将利用操作系统中最新版本的库,并且您的代码将继续运行而不重新编译。这不仅使开发应用更简单,还减少了应用的大小及其启动时间。

    开源

    Swift 是Swift.org开放开发的,源代码、错误跟踪器、论坛和常规开发构建可供所有人使用。这个广泛的开发者社区,包括苹果内部以及数以百计的外部贡献者,共同努力,使 Swift 更加惊人。有更广泛的博客,播客,会议和聚会,社区中的开发人员分享他们的经验,如何实现Swift的巨大潜力。

    交叉平台

    Swift 已经支持所有 Apple 平台和 Linux,社区成员正在积极向更多平台进行移植。借助 SourceKit-LSP,社区还致力于将 Swift 支持集成到各种开发人员工具中。我们很高兴看到更多方法让 Swift 使软件更安全、更快速,同时使编程更有趣。

    服务器的 Swift

    虽然 Swift 为 Apple 平台上的许多新应用提供支持,但它也被用于一类新的现代服务器应用程序。Swift 非常适合用于需要运行时安全性、编译性能和小内存占用量的服务器应用。为了引导 Swift 开发和部署服务器应用程序的方向,社区成立了Swift Server工作组。此工作的第一个产品是 SwiftNIO,这是一个跨平台异步事件驱动的网络应用程序框架,用于高性能协议服务器和客户端。它作为构建其他面向服务器的工具和技术的基础,包括日志、指标和数据库驱动程序,它们都在活动开发中。

    要了解有关开源 Swift 社区和Swift 服务器工作组,请访问Swift.org

    游乐场和读-评估打印循环 (REPL)

    很像 iPad 的 Swift 游乐场,Xcode 中的游乐场使编写 Swift 代码变得极其简单和有趣。键入一行代码,结果将立即显示。然后,您可以快速查看代码侧面的结果,或直接在下方固定结果。结果视图可以显示图形、结果列表或随时间看的值的图形。您可以打开"时间轴助手"来观看复杂视图的演变和动画,非常适合尝试新的 UI 代码,或在编写代码时播放动画 SpriteKit 场景。当您在操场上完善了代码后,只需将代码移动到项目中即可。当您在终端或 Xcode 的 LLDB 调试控制台中使用它时,Swift 也是交互式的。使用 Swift 语法评估和与正在运行的应用交互,或编写新代码以查看它在类似脚本的环境中的工作方式。

    包管理器

    Swift 包管理器是一个跨平台工具,用于构建、运行、测试和打包 Swift 库和可执行文件。Swift 包是向 Swift 社区分发库和源代码的最佳方式。包的配置是用 Swift 本身编写的,便于配置目标、声明产品和管理包依赖项。Swift 5, 的新增功能现在包括能够在 REPL 中导入库,而无需构建可执行文件。Swift 包管理器本身实际上是使用 Swift 构建的,并作为包包含在 Swift 开源项目中。

    目标-C 互操作性

    今天,您可以使用 Swift 创建一个全新的应用程序,或者开始使用 Swift 代码在应用中实现新功能。 Swift 代码在同一项目中共存您现有的 Objective-C 文件,并完全访问您的 Objective-CAPI,便于采用。

    入门

    下载 Xcode 并了解如何使用 Swift 使用文档和示例代码构建应用程序。

    查看资源