<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Swift 基础部分 on 编程那些事儿</title><link>https://before80.github.io/prgms/Swift/basic/</link><description>Recent content in Swift 基础部分 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 19 Sep 2026 21:54:25 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Swift/basic/index.xml" rel="self" type="application/rss+xml"/><item><title>附录A 语法地图：官方指南到章节</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-A-Syntax-Map/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-A-Syntax-Map/</guid><description>&lt;h1 id="附录a语法地图官方指南到章节"&gt;附录A：语法地图：官方指南到章节&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本附录把 Swift 官方语言指南的主要主题映射到本书章节。复习时可以先看地图，再回到具体章节，而不是从头盲目重读。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="a1-语言指南主题"&gt;A.1 语言指南主题&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;官方主题&lt;/th&gt;
 &lt;th&gt;本书章节&lt;/th&gt;
 &lt;th&gt;关键词&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Lexical Structure&lt;/td&gt;
 &lt;td&gt;第2章&lt;/td&gt;
 &lt;td&gt;源文件编码（UTF-8）、空白、注释、标识符、关键字、字面量、运算符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;The Basics&lt;/td&gt;
 &lt;td&gt;第2、4、8、9章&lt;/td&gt;
 &lt;td&gt;常量、变量、注释、数值、元组、可选值&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Basic Operators&lt;/td&gt;
 &lt;td&gt;第7章&lt;/td&gt;
 &lt;td&gt;算术、比较、逻辑、区间、位运算、运算符重载&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Strings and Characters&lt;/td&gt;
 &lt;td&gt;第5章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;String&lt;/code&gt;、&lt;code&gt;Character&lt;/code&gt;、索引、切片、插值&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Collection Types&lt;/td&gt;
 &lt;td&gt;第10章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Array&lt;/code&gt;、&lt;code&gt;Dictionary&lt;/code&gt;、&lt;code&gt;Set&lt;/code&gt;、值语义&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sequence / Collection 协议&lt;/td&gt;
 &lt;td&gt;第48章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;IteratorProtocol&lt;/code&gt;、&lt;code&gt;Sequence&lt;/code&gt;、&lt;code&gt;Collection&lt;/code&gt;、&lt;code&gt;RandomAccessCollection&lt;/code&gt;、惰性视图&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;数值与格式化（非指南主题）&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Numeric&lt;/code&gt;、&lt;code&gt;BinaryInteger&lt;/code&gt;、&lt;code&gt;FixedWidthInteger&lt;/code&gt;、&lt;code&gt;FloatingPoint&lt;/code&gt;、&lt;code&gt;Decimal&lt;/code&gt;、&lt;code&gt;FormatStyle&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Control Flow&lt;/td&gt;
 &lt;td&gt;第11、12章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;if&lt;/code&gt;、&lt;code&gt;for&lt;/code&gt;、&lt;code&gt;while&lt;/code&gt;、&lt;code&gt;switch&lt;/code&gt;、模式匹配&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Functions&lt;/td&gt;
 &lt;td&gt;第13章&lt;/td&gt;
 &lt;td&gt;标签、默认值、可变参数、&lt;code&gt;inout&lt;/code&gt;、函数类型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Closures&lt;/td&gt;
 &lt;td&gt;第14章&lt;/td&gt;
 &lt;td&gt;尾随闭包、捕获列表、逃逸、自动闭包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Enumerations&lt;/td&gt;
 &lt;td&gt;第16章&lt;/td&gt;
 &lt;td&gt;原始值、关联值、递归枚举、&lt;code&gt;CaseIterable&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Structures and Classes&lt;/td&gt;
 &lt;td&gt;第17、18章&lt;/td&gt;
 &lt;td&gt;值语义、引用语义、继承、身份&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Properties&lt;/td&gt;
 &lt;td&gt;第19章、第50章&lt;/td&gt;
 &lt;td&gt;存储、计算、观察器、&lt;code&gt;lazy&lt;/code&gt;、类型属性、属性包装器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Methods&lt;/td&gt;
 &lt;td&gt;第19章&lt;/td&gt;
 &lt;td&gt;实例方法、类型方法、&lt;code&gt;mutating&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Subscripts&lt;/td&gt;
 &lt;td&gt;第19章、第50章&lt;/td&gt;
 &lt;td&gt;下标声明与访问；多参数、静态、安全版重载、动态成员查找&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Inheritance&lt;/td&gt;
 &lt;td&gt;第18章&lt;/td&gt;
 &lt;td&gt;重写、&lt;code&gt;super&lt;/code&gt;、&lt;code&gt;final&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Initialization&lt;/td&gt;
 &lt;td&gt;第20章&lt;/td&gt;
 &lt;td&gt;指定/便利初始化器、可失败初始化器、两阶段初始化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Deinitialization&lt;/td&gt;
 &lt;td&gt;第20章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;deinit&lt;/code&gt;、隔离反初始化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Optional Chaining&lt;/td&gt;
 &lt;td&gt;第9章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;?.&lt;/code&gt;、链式安全访问&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Error Handling&lt;/td&gt;
 &lt;td&gt;第15章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;throw&lt;/code&gt;、&lt;code&gt;throws&lt;/code&gt;、&lt;code&gt;do-catch&lt;/code&gt;、&lt;code&gt;Result&lt;/code&gt;、类型化抛出&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Concurrency&lt;/td&gt;
 &lt;td&gt;第30、31、32章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;async/await&lt;/code&gt;、&lt;code&gt;Task&lt;/code&gt;、actor、&lt;code&gt;Sendable&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Type Casting&lt;/td&gt;
 &lt;td&gt;第8、24章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;is&lt;/code&gt;、&lt;code&gt;as?&lt;/code&gt;、&lt;code&gt;as!&lt;/code&gt;、元类型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Nested Types&lt;/td&gt;
 &lt;td&gt;第21章&lt;/td&gt;
 &lt;td&gt;类型内部命名空间&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Extensions&lt;/td&gt;
 &lt;td&gt;第21章&lt;/td&gt;
 &lt;td&gt;计算属性、方法、协议遵循、条件扩展&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Protocols&lt;/td&gt;
 &lt;td&gt;第22章&lt;/td&gt;
 &lt;td&gt;协议要求、关联类型、扩展、&lt;code&gt;some&lt;/code&gt;/&lt;code&gt;any&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Generics&lt;/td&gt;
 &lt;td&gt;第23章&lt;/td&gt;
 &lt;td&gt;泛型函数、泛型类型、约束、参数包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Opaque and Boxed Protocol Types&lt;/td&gt;
 &lt;td&gt;第22、23、24章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;some&lt;/code&gt;、&lt;code&gt;any&lt;/code&gt;、类型擦除&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Automatic Reference Counting&lt;/td&gt;
 &lt;td&gt;第27、28章&lt;/td&gt;
 &lt;td&gt;ARC、强/弱/无主引用、循环引用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Memory Safety&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;td&gt;独占访问、&lt;code&gt;borrowing&lt;/code&gt;、&lt;code&gt;consuming&lt;/code&gt;、&lt;code&gt;~Copyable&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Access Control&lt;/td&gt;
 &lt;td&gt;第25章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;open&lt;/code&gt;、&lt;code&gt;public&lt;/code&gt;、&lt;code&gt;package&lt;/code&gt;、&lt;code&gt;internal&lt;/code&gt;、&lt;code&gt;private&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Advanced Operators&lt;/td&gt;
 &lt;td&gt;第7章&lt;/td&gt;
 &lt;td&gt;位运算、溢出运算、自定义运算符&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Macros&lt;/td&gt;
 &lt;td&gt;第26章&lt;/td&gt;
 &lt;td&gt;自由宏、附着宏、编译器插件&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Result builders&lt;/td&gt;
 &lt;td&gt;第15B.18节、第22.8节&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@resultBuilder&lt;/code&gt;、&lt;code&gt;@ViewBuilder&lt;/code&gt;、块里的 &lt;code&gt;if&lt;/code&gt; / &lt;code&gt;switch&lt;/code&gt; / &lt;code&gt;for&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;标准库算法（非指南主题）&lt;/td&gt;
 &lt;td&gt;第51章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;zip&lt;/code&gt;、&lt;code&gt;stride&lt;/code&gt;、&lt;code&gt;sequence&lt;/code&gt;、&lt;code&gt;reduce(into:)&lt;/code&gt;、&lt;code&gt;Dictionary(grouping:by:)&lt;/code&gt;、&lt;code&gt;lazy&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;反射与内存布局（非指南主题）&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;CustomStringConvertible&lt;/code&gt;、&lt;code&gt;LosslessStringConvertible&lt;/code&gt;、&lt;code&gt;Mirror&lt;/code&gt;、&lt;code&gt;MemoryLayout&lt;/code&gt;、&lt;code&gt;withUnsafeBytes&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="a2-声明主题"&gt;A.2 声明主题&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;声明&lt;/th&gt;
 &lt;th&gt;章节&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;import&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第25章&lt;/td&gt;
 &lt;td&gt;模块导入与精确导入&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;let&lt;/code&gt; / &lt;code&gt;var&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第4章&lt;/td&gt;
 &lt;td&gt;常量与变量&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;func&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第13章&lt;/td&gt;
 &lt;td&gt;函数与参数标签&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第16章&lt;/td&gt;
 &lt;td&gt;枚举与关联值&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;struct&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第17章&lt;/td&gt;
 &lt;td&gt;结构体与值语义&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;class&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第18章&lt;/td&gt;
 &lt;td&gt;类、继承与引用语义&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第22章&lt;/td&gt;
 &lt;td&gt;能力描述与协议扩展&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;extension&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第21章&lt;/td&gt;
 &lt;td&gt;为已有类型添加能力&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;init&lt;/code&gt; / &lt;code&gt;deinit&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第20章&lt;/td&gt;
 &lt;td&gt;初始化与反初始化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subscript&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第19章&lt;/td&gt;
 &lt;td&gt;自定义下标&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;typealias&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第8章&lt;/td&gt;
 &lt;td&gt;类型别名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;associatedtype&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第22、23章&lt;/td&gt;
 &lt;td&gt;协议关联类型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;macro&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第26章&lt;/td&gt;
 &lt;td&gt;宏声明&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@main&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第3章&lt;/td&gt;
 &lt;td&gt;程序入口&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="a3-表达式与模式"&gt;A.3 表达式与模式&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;主题&lt;/th&gt;
 &lt;th&gt;章节&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;前缀、中缀、后缀运算符&lt;/td&gt;
 &lt;td&gt;第7章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;三元与空合表达式&lt;/td&gt;
 &lt;td&gt;第7、9章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;if&lt;/code&gt; / &lt;code&gt;switch&lt;/code&gt; 表达式&lt;/td&gt;
 &lt;td&gt;第11、12、15B章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;闭包表达式&lt;/td&gt;
 &lt;td&gt;第14章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;隐式成员表达式&lt;/td&gt;
 &lt;td&gt;第15B、16、18章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;键路径表达式&lt;/td&gt;
 &lt;td&gt;第15B、24章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;通配模式&lt;/td&gt;
 &lt;td&gt;第12、15B章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;标识符与值绑定模式&lt;/td&gt;
 &lt;td&gt;第12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;元组模式&lt;/td&gt;
 &lt;td&gt;第12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;枚举用例模式&lt;/td&gt;
 &lt;td&gt;第12、16章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;可选模式&lt;/td&gt;
 &lt;td&gt;第9、12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;类型转换模式&lt;/td&gt;
 &lt;td&gt;第8、12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;表达式模式&lt;/td&gt;
 &lt;td&gt;第7、12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;语法糖与特殊写法（省 &lt;code&gt;return&lt;/code&gt;、隐式 &lt;code&gt;self&lt;/code&gt;、绑定简写、&lt;code&gt;.init&lt;/code&gt;、&lt;code&gt;callAsFunction&lt;/code&gt;、字面量协议等）&lt;/td&gt;
 &lt;td&gt;第15B章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="a4-使用建议"&gt;A.4 使用建议&lt;/h2&gt;
&lt;p&gt;复习时优先顺序：&lt;/p&gt;</description></item><item><title>附录B 标准库与 Foundation 的分界</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-B-Standard-Library-and-Foundation/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-B-Standard-Library-and-Foundation/</guid><description>&lt;h1 id="附录b标准库与-foundation-的分界"&gt;附录B：标准库与 Foundation 的分界&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;很多错误不是语法错误，而是“这个 API 到底属于谁”。标准库提供语言最核心的类型和算法，Foundation 提供日期、文件、网络、格式化等系统能力。分清边界，能让你写出更可移植、依赖更清楚的代码。&lt;/p&gt;</description></item><item><title>附录C @ 属性与 # 指令速查</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-C-Attributes-and-Directives/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-C-Attributes-and-Directives/</guid><description>&lt;h1 id="附录c-属性与--指令速查"&gt;附录C：&lt;code&gt;@&lt;/code&gt; 属性与 &lt;code&gt;#&lt;/code&gt; 指令速查&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;@&lt;/code&gt; 通常修饰声明，&lt;code&gt;#&lt;/code&gt; 通常出现在表达式、编译控制或编译期字面量中。两者都会影响编译器行为，但作用时机和适用位置不同。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="c1-常用--属性"&gt;C.1 常用 &lt;code&gt;@&lt;/code&gt; 属性&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;属性&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@available&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;声明可用性&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@available(macOS 13, *)&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@autoclosure&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;表达式自动包装为闭包&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;func log(_ message: @autoclosure () -&amp;gt; String)&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@backDeployed&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;回部署到旧系统&lt;/td&gt;
 &lt;td&gt;库兼容&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@concurrent&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;要求并发执行&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@concurrent func work() async&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@discardableResult&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;允许忽略返回值&lt;/td&gt;
 &lt;td&gt;保存、打印类函数&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@dynamicCallable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;动态调用语法&lt;/td&gt;
 &lt;td&gt;脚本桥接&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@dynamicMemberLookup&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;动态成员查找&lt;/td&gt;
 &lt;td&gt;JSON 包装&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@escaping&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;闭包可逃逸&lt;/td&gt;
 &lt;td&gt;保存回调&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@frozen&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;冻结枚举或结构体 ABI&lt;/td&gt;
 &lt;td&gt;库演化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@globalActor&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;自定义全局 actor&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@MyActor&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@inlinable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;跨模块内联&lt;/td&gt;
 &lt;td&gt;公共热路径&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@inline&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;强制或禁止内联&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@inline(never)&lt;/code&gt;、&lt;code&gt;@inline(always)&lt;/code&gt;、&lt;code&gt;@inline(__always)&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@MainActor&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;主 actor 隔离&lt;/td&gt;
 &lt;td&gt;UI 状态&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@nonobjc&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;不暴露给 Objective-C&lt;/td&gt;
 &lt;td&gt;兼容层&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@objc&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;暴露给 Objective-C&lt;/td&gt;
 &lt;td&gt;选择器、旧框架&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@preconcurrency&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;兼容旧并发标注&lt;/td&gt;
 &lt;td&gt;迁移&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@propertyWrapper&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;属性包装器&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@Clamped&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@resultBuilder&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;结果构建器&lt;/td&gt;
 &lt;td&gt;SwiftUI、DSL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@ViewBuilder&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;SwiftUI 提供的结果构建器，让块里能写 &lt;code&gt;if&lt;/code&gt; / &lt;code&gt;switch&lt;/code&gt; / &lt;code&gt;ForEach&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;视图声明（第 15B.18 节）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@retroactive&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;显式追溯性协议遵循&lt;/td&gt;
 &lt;td&gt;扩展外部类型&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@Sendable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可安全跨隔离域&lt;/td&gt;
 &lt;td&gt;并发闭包&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@testable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;测试导入&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@testable import App&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@unchecked&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;关闭部分检查&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;@unchecked Sendable&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@usableFromInline&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;允许内联代码引用&lt;/td&gt;
 &lt;td&gt;库内部优化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;@warn_unqualified_access&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;未限定访问时警告&lt;/td&gt;
 &lt;td&gt;避免同名成员混淆&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="c2-编译控制与字面量"&gt;C.2 编译控制与字面量&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;指令&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#if&lt;/code&gt; / &lt;code&gt;#elseif&lt;/code&gt; / &lt;code&gt;#else&lt;/code&gt; / &lt;code&gt;#endif&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;条件编译&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#available&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;运行时可用性判断&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#unavailable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;不可用性判断&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#warning&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;编译警告&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#error&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;编译错误&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#sourceLocation&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;临时调整源码位置&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#selector&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Objective-C 选择器&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#keyPath&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;旧式键路径字符串&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="c3-编译期字面量"&gt;C.3 编译期字面量&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;字面量&lt;/th&gt;
 &lt;th&gt;内容&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#file&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;模块名 + 文件名（Swift 6 模式下与 &lt;code&gt;#fileID&lt;/code&gt; 相同，详见 2.6）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#fileID&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;模块和文件名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#filePath&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;完整文件路径&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#line&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;行号&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#column&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;列号&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#function&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;函数名&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#dsohandle&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;动态共享对象句柄&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="c4-宏相关"&gt;C.4 宏相关&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;名称&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#externalMacro&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;指向宏实现&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#Preview&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;生成 SwiftUI 预览&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;#expect&lt;/code&gt; / &lt;code&gt;#require&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Swift Testing 断言&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="c5-使用原则"&gt;C.5 使用原则&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;不要因为属性“看起来高级”就随手添加。&lt;/li&gt;
&lt;li&gt;能用普通语法表达的，优先普通语法。&lt;/li&gt;
&lt;li&gt;属性一旦进入公共 API，可能影响二进制兼容性。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@preconcurrency&lt;/code&gt;、&lt;code&gt;@unchecked Sendable&lt;/code&gt; 和 &lt;code&gt;nonisolated(unsafe)&lt;/code&gt; 属于迁移工具，不是长期解决方案。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>附录D 术语表</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-D-Glossary/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-D-Glossary/</guid><description>&lt;h1 id="附录d术语表"&gt;附录D：术语表&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;术语不是用来吓人的，而是用来在一句话里准确表达复杂概念。遇到不熟的词，回到这里快速定位章节。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;术语&lt;/th&gt;
 &lt;th&gt;含义&lt;/th&gt;
 &lt;th&gt;章节&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ARC&lt;/td&gt;
 &lt;td&gt;自动引用计数，管理类实例生命周期&lt;/td&gt;
 &lt;td&gt;第27章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;actor&lt;/td&gt;
 &lt;td&gt;串行保护隔离状态的引用类型&lt;/td&gt;
 &lt;td&gt;第31章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;actor isolation&lt;/td&gt;
 &lt;td&gt;隔离域，actor 内部状态的访问边界&lt;/td&gt;
 &lt;td&gt;第31章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;associatedtype&lt;/td&gt;
 &lt;td&gt;协议中的关联类型&lt;/td&gt;
 &lt;td&gt;第22章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;async/await&lt;/td&gt;
 &lt;td&gt;异步函数与等待语法&lt;/td&gt;
 &lt;td&gt;第30章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;autoclosure&lt;/td&gt;
 &lt;td&gt;自动把表达式包成闭包&lt;/td&gt;
 &lt;td&gt;第14章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;BinaryInteger&lt;/td&gt;
 &lt;td&gt;定长与不定长整数共同的协议族上层&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;BOM&lt;/td&gt;
 &lt;td&gt;字节顺序标记（U+FEFF）；出现在 UTF-8 源文件开头时被编译器忽略&lt;/td&gt;
 &lt;td&gt;第2章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;borrowing&lt;/td&gt;
 &lt;td&gt;只借入不消耗参数的所有权修饰&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;COW&lt;/td&gt;
 &lt;td&gt;写时复制，修改时才分离共享存储&lt;/td&gt;
 &lt;td&gt;第27章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Collection&lt;/td&gt;
 &lt;td&gt;可重复遍历、有下标与 &lt;code&gt;count&lt;/code&gt; 的序列协议&lt;/td&gt;
 &lt;td&gt;第48章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;capture list&lt;/td&gt;
 &lt;td&gt;闭包捕获列表，控制捕获方式&lt;/td&gt;
 &lt;td&gt;第14、28章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;consuming&lt;/td&gt;
 &lt;td&gt;把参数所有权交给被调函数&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CustomStringConvertible&lt;/td&gt;
 &lt;td&gt;让类型决定 &lt;code&gt;description&lt;/code&gt;，即 &lt;code&gt;&amp;quot;\(value)&amp;quot;&lt;/code&gt; 的输出&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CustomDebugStringConvertible&lt;/td&gt;
 &lt;td&gt;决定 &lt;code&gt;debugDescription&lt;/code&gt;，即 &lt;code&gt;String(reflecting:)&lt;/code&gt; 的输出&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Decimal&lt;/td&gt;
 &lt;td&gt;十进制浮点数，用于金额等不能有二进制舍入误差的场景&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;dump&lt;/td&gt;
 &lt;td&gt;走反射把值打印成树，与 &lt;code&gt;print&lt;/code&gt; 不同&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;escape&lt;/td&gt;
 &lt;td&gt;闭包或值逃离当前生命周期，见 &lt;code&gt;@escaping&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第14、29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;existential type&lt;/td&gt;
 &lt;td&gt;存在类型，即 &lt;code&gt;any P&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第22、24章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;escaping&lt;/td&gt;
 &lt;td&gt;逃逸闭包，调用返回后仍存活&lt;/td&gt;
 &lt;td&gt;第14章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;FixedWidthInteger&lt;/td&gt;
 &lt;td&gt;有固定位宽的整数协议，提供 &lt;code&gt;&amp;amp;+&lt;/code&gt;、溢出检查等&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;FormatStyle&lt;/td&gt;
 &lt;td&gt;数字、货币、百分比、日期的格式化配置类型&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;identifier&lt;/td&gt;
 &lt;td&gt;标识符；可用中文与 emoji，但不做 Unicode 规范化&lt;/td&gt;
 &lt;td&gt;第2章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;IteratorProtocol&lt;/td&gt;
 &lt;td&gt;迭代器协议，&lt;code&gt;for ... in&lt;/code&gt; 真正调用的那一层&lt;/td&gt;
 &lt;td&gt;第48章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;key path&lt;/td&gt;
 &lt;td&gt;键路径，把属性访问变成值（可当单参数函数使用）&lt;/td&gt;
 &lt;td&gt;第15B、24章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;lazy 视图&lt;/td&gt;
 &lt;td&gt;把 &lt;code&gt;map&lt;/code&gt;、&lt;code&gt;filter&lt;/code&gt; 串成一条链、按需计算的视图，不缓存结果&lt;/td&gt;
 &lt;td&gt;第48、51章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;literal&lt;/td&gt;
 &lt;td&gt;字面量，如 &lt;code&gt;42&lt;/code&gt;、&lt;code&gt;&amp;quot;hi&amp;quot;&lt;/code&gt;，由 &lt;code&gt;ExpressibleBy…Literal&lt;/code&gt; 协议支撑&lt;/td&gt;
 &lt;td&gt;第15B、24章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LosslessStringConvertible&lt;/td&gt;
 &lt;td&gt;能从字符串无损还原成值的协议&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;macro&lt;/td&gt;
 &lt;td&gt;编译期展开的代码生成器，分自由宏与附着宏&lt;/td&gt;
 &lt;td&gt;第26章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MainActor&lt;/td&gt;
 &lt;td&gt;代表主线程的全局 actor，UI 代码的默认舞台&lt;/td&gt;
 &lt;td&gt;第31章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Measurement&lt;/td&gt;
 &lt;td&gt;带单位的量，如 5 km、30 °C&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MemoryLayout&lt;/td&gt;
 &lt;td&gt;查询类型的 &lt;code&gt;size&lt;/code&gt; / &lt;code&gt;stride&lt;/code&gt; / &lt;code&gt;alignment&lt;/code&gt; 与字段偏移&lt;/td&gt;
 &lt;td&gt;第52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;metatype&lt;/td&gt;
 &lt;td&gt;元类型，&lt;code&gt;Int.self&lt;/code&gt; 这类“类型的值”&lt;/td&gt;
 &lt;td&gt;第24章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mirror&lt;/td&gt;
 &lt;td&gt;只读反射工具，用于查看值的结构&lt;/td&gt;
 &lt;td&gt;第24、52章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;noncopyable&lt;/td&gt;
 &lt;td&gt;不可复制类型，写作 &lt;code&gt;~Copyable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Numeric&lt;/td&gt;
 &lt;td&gt;支持四则运算的数值协议族根节点&lt;/td&gt;
 &lt;td&gt;第49章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;opaque type&lt;/td&gt;
 &lt;td&gt;不透明类型，如 &lt;code&gt;some P&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第22、23章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ownership&lt;/td&gt;
 &lt;td&gt;所有权，值的转移与借用规则&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;pattern matching&lt;/td&gt;
 &lt;td&gt;模式匹配，&lt;code&gt;switch&lt;/code&gt; 的核心&lt;/td&gt;
 &lt;td&gt;第12章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;property wrapper&lt;/td&gt;
 &lt;td&gt;属性包装器&lt;/td&gt;
 &lt;td&gt;第19章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RandomAccessCollection&lt;/td&gt;
 &lt;td&gt;能在 O(1) 内跳到任意位置的集合协议&lt;/td&gt;
 &lt;td&gt;第48章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;reduce(into:)&lt;/td&gt;
 &lt;td&gt;把序列累积进一个可变容器，避免写时复制开销&lt;/td&gt;
 &lt;td&gt;第51章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;result builder&lt;/td&gt;
 &lt;td&gt;结果构建器，DSL 里的声明式代码块；&lt;code&gt;@ViewBuilder&lt;/code&gt; 是最出名的实例&lt;/td&gt;
 &lt;td&gt;第15B、22章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sendable&lt;/td&gt;
 &lt;td&gt;可安全跨隔离域传递的标记&lt;/td&gt;
 &lt;td&gt;第31章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sequence&lt;/td&gt;
 &lt;td&gt;能按顺序遍历一次的协议，&lt;code&gt;map&lt;/code&gt; / &lt;code&gt;filter&lt;/code&gt; 的落脚点&lt;/td&gt;
 &lt;td&gt;第48章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;source encoding&lt;/td&gt;
 &lt;td&gt;源文件编码；Swift 只接受 UTF-8&lt;/td&gt;
 &lt;td&gt;第2章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Span&lt;/td&gt;
 &lt;td&gt;不拥有内存的连续元素视图&lt;/td&gt;
 &lt;td&gt;第29章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;stride&lt;/td&gt;
 &lt;td&gt;生成等差数列的全局函数；&lt;code&gt;to:&lt;/code&gt; 不含终点，&lt;code&gt;through:&lt;/code&gt; 含&lt;/td&gt;
 &lt;td&gt;第51章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;structured concurrency&lt;/td&gt;
 &lt;td&gt;结构化并发，父子任务的生命周期绑定&lt;/td&gt;
 &lt;td&gt;第30章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;sugar&lt;/td&gt;
 &lt;td&gt;语法糖；写法更短但语义不变，如 &lt;code&gt;[Int]&lt;/code&gt;、&lt;code&gt;if let x&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第15B章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;task group&lt;/td&gt;
 &lt;td&gt;任务组，动态派发并等待一组子任务&lt;/td&gt;
 &lt;td&gt;第30章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;tuple&lt;/td&gt;
 &lt;td&gt;元组，临时组合多个值&lt;/td&gt;
 &lt;td&gt;第8章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;typed throws&lt;/td&gt;
 &lt;td&gt;类型化抛出，写作 &lt;code&gt;throws(E)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第15章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;value semantics&lt;/td&gt;
 &lt;td&gt;值语义，复制后互不影响&lt;/td&gt;
 &lt;td&gt;第17章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;view builder (&lt;code&gt;@ViewBuilder&lt;/code&gt;)&lt;/td&gt;
 &lt;td&gt;SwiftUI 提供的结果构建器，让块里能写 &lt;code&gt;if&lt;/code&gt;、&lt;code&gt;switch&lt;/code&gt;、&lt;code&gt;ForEach&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;第15B.18节、第37章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;weak / unowned&lt;/td&gt;
 &lt;td&gt;弱引用与无主引用，用来打断循环引用&lt;/td&gt;
 &lt;td&gt;第28章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;zip&lt;/td&gt;
 &lt;td&gt;把两个序列配对成元组，以短的为准&lt;/td&gt;
 &lt;td&gt;第51章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;补充几条容易混在一起的：&lt;/p&gt;</description></item><item><title>附录E 版本差异与易错点清单</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-E-Version-Differences/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-E-Version-Differences/</guid><description>&lt;h1 id="附录e版本差异与易错点清单"&gt;附录E：版本差异与易错点清单&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;Swift 的语法相对稳定，但并发、所有权和宏仍在快速演进。本附录按“功能线索”整理，不把版本号当考试题；真正重要的是知道你使用的工具链支持哪些特性。&lt;/p&gt;</description></item><item><title>附录F 官方资料与延伸阅读</title><link>https://before80.github.io/prgms/Swift/basic/Appendix-F-Official-Resources/</link><pubDate>Mon, 14 Sep 2026 22:30:00 +0800</pubDate><guid>https://before80.github.io/prgms/Swift/basic/Appendix-F-Official-Resources/</guid><description>&lt;h1 id="附录f官方资料与延伸阅读"&gt;附录F：官方资料与延伸阅读&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;教程能帮你建立地图，官方资料负责给你最新、最权威的细节。以下链接按主题分组，建议收藏后按需查阅，而不是一次性读完。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="f1-语言与标准库"&gt;F.1 语言与标准库&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.swift.org/swift-book/"&gt;The Swift Programming Language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swift.org/documentation/"&gt;Swift 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift"&gt;Swift 标准库源码&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-evolution"&gt;Swift Evolution 提案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swift.org/documentation/api-design-guidelines/"&gt;Swift API Design Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f2-并发与内存"&gt;F.2 并发与内存&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/"&gt;Swift Concurrency 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swift.org/migration/documentation/swift-6-concurrency-migration-guide/"&gt;Swift Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swift.org/documentation/concurrency/"&gt;Approachable Concurrency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apple/swift-atomics"&gt;Swift Atomics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f3-包管理与构建"&gt;F.3 包管理与构建&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.swift.org/package-manager/"&gt;Swift Package Manager 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-package-manager"&gt;SwiftPM 源码&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-build"&gt;Swift Build&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apple/swift-argument-parser"&gt;Swift Argument Parser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f4-测试与宏"&gt;F.4 测试与宏&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/xcode/swift-testing/"&gt;Swift Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/testing"&gt;Swift Testing 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-syntax"&gt;swift-syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-syntax/tree/main/Examples"&gt;宏实现示例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.swift.org/swift-book/documentation/the-swift-programming-language/macros/"&gt;Swift 宏语言指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift-evolution/blob/main/proposals/0289-result-builders.md"&gt;结果构建器提案 SE-0289&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f5-ui-与服务端"&gt;F.5 UI 与服务端&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/swiftui"&gt;SwiftUI 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/swiftui/viewbuilder"&gt;&lt;code&gt;@ViewBuilder&lt;/code&gt; 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/observation"&gt;Observation 框架&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/swiftdata"&gt;SwiftData 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.swift.org/server/"&gt;Swift on Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apple/swift-nio"&gt;SwiftNIO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vapor.codes/"&gt;Vapor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hummingbird-project.io/"&gt;Hummingbird&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f6-工具与性能"&gt;F.6 工具与性能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/swiftlang/swift/tree/main/userdocs/diagnostics"&gt;Swift 编译器诊断&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/documentation/instruments"&gt;Instruments 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lldb.llvm.org/"&gt;LLDB 文档&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="f7-学习建议"&gt;F.7 学习建议&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;官方语言指南用于查语法；不要把它当唯一练习材料。&lt;/li&gt;
&lt;li&gt;Swift Evolution 用于跟踪新特性；重点看 Motivation 和 Detailed Design。&lt;/li&gt;
&lt;li&gt;框架文档用于查 API；先理解概念，再背接口。&lt;/li&gt;
&lt;li&gt;遇到编译器提示，先回看本附录的“版本差异与易错点”，再搜索官方诊断说明。&lt;/li&gt;
&lt;li&gt;所有示例最终都应以你本机工具链的实测结果为准。&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>