一门语法优雅、性能强悍,还越来越"全能"的编程语言,值得你从零开始,认认真真走一遍。

写在前面:这篇文章想解决什么问题

如果你点开这篇文章,大概率属于下面三种人之一:

  • 完全的新手:听说 Swift 是苹果的官方语言,想学,但面对一堆教程和视频,不知道先看哪个、后看哪个;
  • 半路出家的人:能看懂一些 Swift 代码,也能跟着教程跑起来,但知识是碎的,遇到真正的项目就无从下手;
  • 想转方向的老手:已经有 Python、Java、JavaScript 之类的经验,只想快速摸清 Swift 的脾气。

不管你是哪一种,这篇文章的目标都是一样的:用一条清晰的路线,把"Swift 从入门到精通"这件事讲明白。它不是一份语法手册,也不是 API 速查表,而是一张"地图"——告诉你每一站该学什么、为什么要学、学到什么程度算过关、以及怎么验证自己真的学会了。

需要提前说明的是,编程语言这件事变化很快。本文的版本信息以 2026 年下半年为基准:当前 Swift 最新的正式版本是 Swift 6.3(2026 年 3 月发布,此后有 6.3.1、6.3.2 等维护版本),下一个大版本 6.4 正在开发中。所以文中关于"最新特性"的部分,你可以放心当作当下有效的参考。


一、先认识一下 Swift:它到底是什么,为什么值得学

1.1 一句话介绍

Swift 是苹果公司在 2014 年推出的编程语言,用来开发 iOS、iPadOS、macOS、watchOS、tvOS 等苹果全平台的应用。它的设计目标是:既安全,又快,还好写。

听起来像是句空话,但拆开看就很实在:

  • 安全:Swift 用一套类型系统把很多"定时炸弹"提前到编译期就掐灭,比如空值崩溃、数据竞争;
  • 快:Swift 编译出来的程序性能接近 C 语言级别。2026 年苹果甚至在官方博客里提到,他们把系统中一个原本用 C 写的核心组件重写成了 Swift,结果新版比原版还快了约 13%;
  • 好写:语法干净、表达力强,同一段逻辑往往比老一代语言短一截。

1.2 为什么 2026 年它的地位更重要了

如果说过去 Swift 只是"苹果应用开发语言",那么到 2026 年,它的身份明显升级了:

维度过去现在(2026)
应用平台苹果全家桶苹果全家桶 + 官方安卓 SDK
服务端小众尝试Vapor 等框架成熟,可用于真实后端服务
嵌入式基本没有Embedded Swift 持续完善,可写固件
工具链绑定 Xcode扩展到更多编辑器与跨平台构建

尤其值得一提的是 Swift 6.3 带来的官方安卓 SDK:这意味着你写的 Swift 逻辑代码,未来有机会同时服务 iOS 和安卓两端。虽然目前主流的做法还是"Swift 写业务逻辑库 + Kotlin 写界面",但方向已经很明确了。

换句话说,学 Swift 的回报,不再只是"能做个 App",而是"掌握一门能在多种平台吃开的现代语言"。

iPhone / iPad / Mac / Apple Watch / Apple TV  →  原生应用
Android                                        →  官方 SDK 交叉编译
Linux / Windows                                →  服务端、命令行工具
嵌入式设备                                      →  固件、微控制器

二、动手之前:把开发环境准备好

2.1 你需要什么设备

老实说,学 Swift 最舒服的姿势是有一台 Mac,因为它自带苹果官方的开发工具 Xcode。但这不代表没有 Mac 就学不了:

  • 有 Mac:直接装 Xcode(在 App Store 里搜即可),这是最标准的路线;
  • 只有 iPad:可以用 Swift Playgrounds,它能在 iPad 上直接写代码、跑代码,非常适合零基础找手感;
  • 只有 Windows / Linux:可以安装官方的 Swift 工具链,练习语言本身的语法完全够用,只是做不了苹果界面相关的开发。

2.2 认识你的三个"新朋友"

刚上手时,有这三个概念值得先混个脸熟:

  1. Xcode:苹果的集成开发环境,相当于"写代码+运行+调试+打包"的一条龙工作台;
  2. Playground:一个可以边写边看结果的小沙盒,特别适合做实验。学语法时用它,能省掉大量"建工程"的麻烦;
  3. Swift Package Manager(简称 SwiftPM):Swift 官方的依赖管理工具,后面管理第三方库时会天天用到。

2.3 第一个程序:Hello, Swift

按传统,我们从"打个招呼"开始。在 Playground 里敲下这一行,就能看到结果:

print("Hello, Swift!")

print 是最基础的输出函数,括号里的内容会被打印到结果区。别小看这一行——它证明你的环境和工具链已经能正常工作了。


三、第一阶段:基础语法(约 1~2 周)

这一阶段的目标是建立语法直觉。不用追求全懂,重点是"看到代码不发怵,能自己改写小例子"。

3.1 变量与常量:先分清 let 和 var

Swift 用 let 声明常量,用 var 声明变量。这是最基本、也最重要的一个习惯:

let name = "小明"      // 常量,赋值后不能再改

var age = 18 // 变量,可以随时修改

age = 19 // 合法
// name = "小红" // 报错:常量不能被重新赋值

这里有个新手必须记住的黄金法则:能用 let 就用 let,只有当这个值确实需要变化时才用 var。这个习惯会让你的代码更安全,也更容易被别人看懂。

另外,Swift 会自动推断类型。你写 let age = 18,它就知道这是整数;你写 let price = 9.9,它就知道这是小数。你也可以显式写明:

let score: Int = 100
let pi: Double = 3.14159
let isReady: Bool = true

3.2 可选类型:Swift 最"有个性"的设计

如果要选一个最能体现 Swift 与其他语言不同的概念,那一定是"可选类型"(Optional)。

在很多老语言里,一个变量可能是 null(空值),你一不小心用了它,程序就崩了。Swift 的办法是:如果一个值有可能不存在,就必须在类型上明确标出来,一个问号 ? 就是标记:

var nickname: String? = "阿伟"   // 可能为空
nickname = nil // 现在它确实是空的

问题是,你没法直接把 String? 当成 String 用,编译器会拦着你。这样就逼着你在使用前先"安全地拆开"它,常用的有三种写法:

var nickname: String? = "阿伟"

// 写法一:if let(最常用)
if let realName = nickname {

print("你好,\(realName)")

} else {

print("对方没有留下昵称")

}

// 写法二:guard let(适合提前返回的场景)
func greet(_ input: String?) {

guard let realName = input else {
    print("没有名字,无法打招呼")
    return
}
print("你好,\(realName)")

}

// 写法三:提供默认值(?? 叫"空合并运算符")
let display = nickname ?? "匿名用户"
print(display)

请务必记住:能不用感叹号 ! 强制解包,就不要用。 强制解包的意思是"我百分百确定这里有值",一旦你判断错了,程序立刻崩溃。它是新手最常见的翻车点。

3.3 集合类型:数组、字典与集合

数据一多,就需要"装数据的容器"。Swift 里最常用的三件套是:

// 数组:有顺序,可以重复
var fruits = ["苹果", "香蕉", "橘子"]
fruits.append("葡萄") // 添加
print(fruits[0]) // 读取第一个

// 字典:键值对,用名字找内容
var scores = ["数学": 95, "英语": 88]
scores["语文"] = 90 // 新增
print(scores["数学"] ?? 0) // 读取

// 集合:无序,且不允许重复
var tags: Set = ["Swift", "iOS", "Swift"]
print(tags.count) // 结果是 2,重复项被自动去掉

3.4 控制流:让程序会"做判断"和"转圈圈"

// 条件判断
let temperature = 26
if temperature > 30 {
print("太热了")

} else if temperature > 20 {

print("刚好")

} else {

print("有点凉")

}

// switch:Swift 的 switch 很强大,且必须写全所有情况
let direction = "north"
switch direction {
case "north":

print("向北")

case "south":

print("向南")

default:

print("其他方向")

}

// 循环
for i in 1...5 {

print("第 \(i) 次")

}

var count = 3
while count > 0 {

print("倒计时 \(count)")
count -= 1

}

3.5 函数与闭包

函数是"把一段逻辑打包并起个名字",闭包则是"没有名字的函数"。

// 一个普通函数
func add(_ a: Int, _ b: Int) -> Int {
return a + b

}
print(add(3, 5)) // 输出 8

// 闭包:把一段代码当成参数传来传去
let numbers = [3, 1, 4, 1, 5, 9, 2, 6]
let sorted = numbers.sorted { a, b in

return a < b

}
print(sorted)

到这一步,你就拥有"读懂大部分入门代码"的能力了。建议此时把每个例子都亲手敲一遍——看过和写过,是两回事。


四、第二阶段:核心特性,理解 Swift 的"思维方式"(约 2~4 周)

基础语法像"认字",第二阶段才是"学写句子"。这一阶段的核心,是理解 Swift 的几大设计哲学。

4.1 结构体与类:值类型 vs 引用类型

Swift 里可以自定义两种"数据模板":struct(结构体)和 class(类)。它们最大的区别在于复制时的行为。

struct PointA {
var x: Int
var y: Int

}

class PointB {

var x: Int = 0
var y: Int = 0

}

// 结构体是"值类型":复制后是两个独立的副本
var a1 = PointA(x: 1, y: 2)
var a2 = a1
a2.x = 100
print(a1.x, a2.x) // 输出 1 100,互不影响

// 类是"引用类型":多个变量指向同一个对象
let b1 = PointB()
let b2 = b1
b2.x = 100
print(b1.x, b2.x) // 输出 100 100,因为它们说的是同一个东西

实践经验:Swift 社区有一条广为流传的准则——优先用结构体,需要继承或共享状态时才用类。这也是 Swift 与其他语言很不一样的地方。

4.2 协议与扩展:Swift 的灵魂

如果只让你记住一个概念,我会选"协议"(Protocol)。

协议可以理解成一份"能力说明书":它只规定"能做哪些事",不管"怎么做"。任何类型只要声明遵守这个协议,就相当于签了合同,必须把这些能力实现出来。

// 定义一份"会打招呼"的协议
protocol Greetable {
var name: String { get }
func greet() -> String

}

// 结构体遵守协议
struct Student: Greetable {

let name: String
func greet() -> String {
    return "同学 \(name),你好!"
}

}

// 类也能遵守同一个协议
class Teacher: Greetable {

let name: String
init(name: String) {
    self.name = name
}
func greet() -> String {
    return "老师 \(name),您好!"
}

}

let people: [Greetable] = [Student(name: "小明"), Teacher(name: "王老师")]
for person in people {

print(person.greet())   // 不需要关心具体类型,只管调用

}

而"扩展"(Extension)则是给已有的类型外挂新能力,而且不需要改它的源码:

extension String {
var isPhoneNumber: Bool {
    return count == 11 && allSatisfy { $0.isNumber }
}

}

print("13800000000".isPhoneNumber) // 输出 true
print("hello".isPhoneNumber) // 输出 false

协议 + 扩展组合起来,就是 Swift 常说的"面向协议编程"(POP),它能大大提高代码的复用性。这是从"会写 Swift"迈向"写好 Swift"的关键一步。

4.3 枚举:不只是常量

Swift 的枚举(Enum)比很多语言强大得多,它可以携带数据、可以有方法:

enum NetworkResult {
case success(data: String)
case failure(code: Int, message: String)

}

func handle(_ result: NetworkResult) {

switch result {
case .success(let data):
    print("成功拿到数据:\(data)")
case .failure(let code, let message):
    print("失败,错误码 \(code):\(message)")
}

}

handle(.success(data: "用户列表"))
handle(.failure(code: 404, message: "没找到"))

4.4 错误处理:优雅地面对"出错"

Swift 用 throws、throw、do-catch 来处理错误,而不是让程序直接崩掉:

enum LoginError: Error {
case emptyPassword
case wrongPassword

}

func login(password: String) throws -> String {

if password.isEmpty {
    throw LoginError.emptyPassword
}
if password != "123456" {
    throw LoginError.wrongPassword
}
return "登录成功"

}

do {

let result = try login(password: "123456")
print(result)

} catch LoginError.emptyPassword {

print("密码不能为空")

} catch {

print("登录失败:\(error)")

}

4.5 泛型:写一份"通用"的代码

泛型让你写一次逻辑,就能适配多种类型,而且不失类型安全:

func firstElement(of array: [T]) -> T? {
return array.first

}

print(firstElement(of: [1, 2, 3]) ?? 0) // 整数数组
print(firstElement(of: ["a", "b"]) ?? "") // 字符串数组

到这里,你的 Swift "内功"已经初步成型。建议用一个小练习自测:自己设计一套协议,写两个不同的类型去遵守它,并用扩展给标准库类型加一个实用小功能。


五、第三阶段:进阶能力,处理"真实世界的麻烦"(约 3~6 周)

前面的内容,够你写小程序了。但真实的应用会遇到三个绕不开的难题:耗时的操作、并发安全、内存管理。这一阶段就是解决它们。

5.1 异步编程:async / await

现实中很多操作很慢,比如发网络请求。如果傻等,界面就卡死了。Swift 提供的解决方案是 async / await:

// 用 async 标记这是个"耗时"函数
func fetchUserName() async -> String {
try? await Task.sleep(nanoseconds: 1_000_000_000)  // 模拟等待 1 秒
return "小美"

}

// 用 await 调用它,等待期间不影响其他事情
func showUser() async {

let name = await fetchUserName()
print("拿到用户名:\(name)")

}

Task {

await showUser()

}

你可以把 await 理解成"先去做别的,结果好了再回来"。它让异步代码读起来几乎和同步代码一样顺。

5.2 并发安全:Swift 6 带来的"大变革"

这是 2026 年学 Swift 必须重点了解的内容。

从 Swift 6 开始,编译器默认开启"严格并发检查"。以前那些可能导致"两个线程同时改一份数据、结果数据错乱"的隐患,现在会在编译阶段直接报错,把你拦住。

理解这套机制,需要知道三个关键词:

关键词作用一句话理解
Sendable标记"可以安全跨线程传递的类型"能安全寄快递的数据
actor自带"隔离区"的类型只有它能改自己的数据,别人得排队
@MainActor标记"必须主线程执行"界面相关的活儿都归它管

先看 actor 怎么解决共享状态问题:

// 用一个"账户"模拟并发扣款
actor BankAccount {
private var balance: Int = 1000

func withdraw(_ amount: Int) -> Int {
    guard balance >= amount else { return balance }
    balance -= amount
    return balance
}

}

func test() async {

let account = BankAccount()
async let r1 = account.withdraw(100)
async let r2 = account.withdraw(200)
print(await r1, await r2)   // actor 内部串行处理,不会算错

}

再看 @MainActor,它用来保证界面更新发生在主线程:

@MainActor
func updateLabel(_ text: String) {
// 这里的代码天然在主线程执行,安全地更新界面
print("更新界面为:\(text)")

}

顺便说一句,Swift 6.2 之后还引入了一个更省心的选项:默认主线程隔离。开启之后,大量代码可以直接在主线程运行,不用到处写 @MainActor,对脚本和界面代码尤其友好。同时新增的 @concurrent 标记,则是让你明确指定"这段代码要并发跑",把控制权交还给你。

一句话总结这个阶段:Swift 6 的哲学是——把并发问题从"运行时靠运气"变成"编译期看得见"。这是它这几年最重要的进步。

5.3 内存管理:ARC 与循环引用

Swift 用"自动引用计数"(ARC)来管理内存,你基本不需要手动申请和释放。但有一个坑必须知道,叫循环引用:两个对象互相强引用对方,结果谁也释放不掉,内存就泄漏了。

解决办法是用 weak(弱引用)打断这个环:

class Person {
let name: String
var apartment: Apartment?

init(name: String) {
    self.name = name
}

}

class Apartment {

let unit: String
weak var tenant: Person?   // 用 weak 避免循环引用

init(unit: String) {
    self.unit = unit
}

}

5.4 补充:此时值得顺带掌握的东西

  • @Observable 宏:Swift 新一代的状态管理方式,比老的 ObservableObject 更简洁,是 SwiftUI 开发的主流做法;
  • InlineArray 与 Span(Swift 6.2 引入):面向性能与底层安全的工具,写高性能代码时会用到,初学阶段了解即可;
  • 协议扩展与泛型约束:把前面学的协议和泛型结合起来,写出更"通用"的库。

六、第四阶段:界面开发与工程化(约 4~8 周)

到这一步,你已经会写"逻辑"了。但要做出能给别人用的东西,还得学会做界面和搭工程。

6.1 SwiftUI:苹果当下主推的界面框架

苹果现在主推的界面框架叫 SwiftUI,它最大的特点是"声明式"——你只需要描述"界面长什么样",框架负责实现。

import SwiftUI

struct ContentView: View {

@State private var count = 0

var body: some View {
    VStack(spacing: 20) {
        Text("你点击了 \(count) 次")
            .font(.title)

        Button("点我加一") {
            count += 1
        }
        .buttonStyle(.borderedProminent)
    }
    .padding()
}

}

有意思的是,SwiftUI 的接受度正在真实地提升。2026 年就有知名产品(如 Mac 版 Notion)宣布把自己的界面迁移到 SwiftUI 上,从"网页套壳"变成原生实现,说明它已经能扛起生产级别的应用。

当然也要客观看待:SwiftUI 仍然年轻,在复杂列表性能、布局可预测性上偶尔会有让人头疼的地方。务实的建议是:新项目优先用 SwiftUI,遇到它搞不定的局部再回退到 UIKit,而不是非此即彼。

6.2 用 Swift Package Manager 管理第三方库

真实项目难免用到别人的轮子。SwiftPM 是官方方案,通过在工程里声明依赖来引入:

// Package.swift 里声明依赖
dependencies: [
.package(url: "https://github.com/vapor/vapor.git", from: "4.0.0")

]

它的好处是:官方出品、与 Xcode 无缝集成、跨平台一致。2026 年的 Swift 6.3 还进一步把统一的构建引擎 Swift Build 预览版整合进了 SwiftPM,跨平台的构建体验会越来越统一。

6.3 测试:让代码敢改

写得越多,越会害怕"改一处、崩一片"。这时测试就是安全网。Swift 官方现在推荐用 Swift Testing 框架:

import Testing

@Test("加法应该正确")
func testAdd() {

#expect(add(2, 3) == 5)

}

不要觉得测试是可选项。能写测试、会写测试,是"业余"和"专业"之间很清晰的一条分界线。

6.4 从"能跑"到"能上线"

一个真正的 App 还要经历:界面适配、网络请求、本地存储、权限申请、打包签名、上架审核。这些知识比较碎,建议的方法是——做一个完整的小项目,把这一串流程亲手走一遍,比如一个"待办清单"或"天气查询"App。走通一次,比看十篇教程都有用。


七、第五阶段:走向精通,把语言用出"专业味"(长期)

"精通"没有终点,但有一些明确的方向可以衡量你是否在靠近:

  • 读源码:去读优秀的开源 Swift 项目,看高手怎么组织代码、怎么处理边界情况;
  • 写库:把你重复写过三遍的工具函数,抽成一个 Swift Package,体会"接口设计"这件事;
  • 懂编译:了解 @inline(always)、@specialize 这类性能标注(Swift 6.3 新增),知道编译器在背后为你做了什么;
  • 跨平台视野:尝试把同一套 Swift 逻辑,用在 iOS、服务端(Vapor)、甚至安卓上,感受"一门语言通吃"的能力;
  • 参与社区:Swift 是开源语言,它的演进过程(提案、讨论)本身就是极好的教材。

这里有句话值得刻在心里:精通的标志,不是"会用更多语法",而是"知道在什么场景下不该用某个语法"。


八、2026 年,Swift 有哪些新变化值得关注

为了让你对"当下"有概念,这里集中梳理几条与 2026 年高度相关的动向。它们不一定需要你立刻掌握,但了解之后,你会更明白这门语言正在往哪走。

8.1 语言层面

  • 严格并发成为默认(Swift 6 起):数据竞争在编译期就能被拦下;
  • 默认主线程隔离与 @concurrent(Swift 6.2 起):并发代码写起来更自然;
  • InlineArray、Span、weak let、Backtrace(Swift 6.2 起):面向性能、内存与调试的新工具;
  • C 互操作增强(Swift 6.3):新增 @c 属性,可以轻松把一个 Swift 函数暴露给 C 代码使用:
@c func callFromC() {
// 这个函数会自动出现在生成的 C 头文件里

}

  • 模块选择器(Swift 6.3):当多个模块里有同名 API 时,可以明确指定用哪一个。

8.2 平台与生态层面

  • 首个官方安卓 SDK(Swift 6.3):Swift 正式支持交叉编译到安卓,可用 Swift 写业务库,再通过桥接工具接入现有的 Kotlin / Java 工程;
  • 统一构建引擎:Swift Build 预览版进入 SwiftPM,跨平台构建体验趋于一致;
  • 编辑器支持扩大:除了 Xcode,官方 Swift 扩展也进入了主流代码编辑器的插件市场,用你习惯的编辑器写 Swift 成为可能。

8.3 一个理性的提醒

新技术固然吸引人,但不要陷入"追版本焦虑"。语言的核心思想(类型、协议、并发模型)变化很慢,把这些学扎实,具体语法差异到时候看一眼文档就能补上。


九、新手最容易踩的五个坑

把这些坑提前告诉你,能帮你省下不少头发。

坑一:把感叹号 ! 当万能解包

var name: String? = nil
// print(name!) // 崩溃!

正确做法:用 if let / guard let / ?? 安全处理,除非你 100% 确定值存在。

坑二:该用 let 的地方写成 var

不是错误,但会让你的代码暴露"可变"的假象。记住:默认用 let,需要改才用 var。

坑三:分不清值类型和引用类型

结构体赋值是"复制",类赋值是"共享同一个"。搞混了,程序行为会完全出乎意料。记住口诀:结构体像复印件,类像同一张纸。

坑四:忽视并发安全,直到崩溃才后悔

如果你还在用老思路写多线程代码,升级到 Swift 6 时很可能一堆编译错误。提前学习 Sendable、actor、@MainActor,把并发当成一等公民对待。

坑五:只看不写

这是最致命的一个。看教程时觉得"我都会了",真动手却写不出来。编程是肌肉记忆,必须亲手敲。 哪怕是把例子原样抄一遍,也比只看强十倍。


十、学习资源清单(按阶段推荐)

网上资料浩如烟海,这里只挑"官方、经典、经过时间验证"的。

官方资源(优先级最高)

资源适合阶段说明
The Swift Programming Language(官方语言指南)全程权威且免费,有中文版可对照
Apple 官方开发者文档进阶 / 实战API 查询的最终依据
Swift.org 官方博客与发布说明了解动态第一时间掌握新版本变化
Swift Playgrounds入门交互式学习,上手最轻松

书籍(选一本深耕)

书名特点
《Swift 编程权威指南》培训教材风格,配套案例丰富,适合系统入门
《Swift 语言程序设计》(高校教材)体系完整,适合当作课本逐章推进
SwiftUI 相关主题书界面开发阶段再入手,配合实战看

在线课程与社区

  • Apple 官方 WWDC 视频:每年更新,讲的是"苹果希望你怎么做";
  • 知名实战教程网站(如 100 Days of SwiftUI 一类):以"每天写一点"的节奏带做项目;
  • GitHub 开源项目:读源码是最高效的进阶方式;
  • Swift 开发者论坛:遇到疑难,这里是官方与高手聚集地。
小建议:资源不在多,在于选定一套,走到底。反复切换教程,是学习路上最隐蔽的时间黑洞。

十一、一张可执行的学习时间表

把上面所有内容浓缩成一张表,供你对照执行。请记住,时间是参考,掌握程度才是标准,不必为了赶进度而囫囵吞枣。

阶段核心内容参考时长过关标准
准备工具安装、Hello World1~2 天能跑通第一个程序
一、基础语法变量、可选、集合、控制流、函数1~2 周能独立改写小例子
二、核心特性结构体 / 类、协议、扩展、枚举、错误、泛型2~4 周能自己设计协议并实现
三、进阶能力async/await、actor、Sendable、内存3~6 周能写出无数据竞争的多任务代码
四、界面与工程SwiftUI、SwiftPM、测试、打包上线4~8 周能独立完成一个小 App
五、精通之路读源码、写库、性能、跨平台长期能设计出好用的接口

十二、结语:给正在起步的你

Swift 是一门"入门友好、上限很高"的语言。

它的入门门槛其实不高——语法干净、工具友好,一个下午就能跑通第一个程序;但它的进阶空间极其宽广——从并发模型到内存布局,从界面框架到跨平台编译,每一层都值得深挖。

所以,与其纠结"我什么时候才能精通",不如把问题换成:"我今天能不能把手里这一小段代码彻底搞懂?"

学编程这件事,从来不是靠某一天突然开窍,而是靠无数个"今天又多懂了一点"累积起来的。选定一条路线,动手敲下去,剩下的交给时间。

祝你在 Swift 的世界里,写得开心,也写得漂亮。


本文基于 2026 年下半年公开信息整理,语言版本与平台特性可能随后续更新有所变化,请以苹果官方文档与 Swift.org 发布说明为准。

发表评论