Swift 的 Optional (可选类型) 看起来像是一个简单的语法糖( 和 ),但其底层实现非常精妙,兼顾了类型安全和运行时性能。 简单来说,Swift 的 Optional 底层就是一个 带有泛型的枚举 (Generic Enum)。 以下是关于 Optional 底层实现的详细深度解析: --- 1. 核心定义:标准库源码 在 Swift 标准库中, 的定义大致如下(简化版): 关键点解析: Enum (枚举):Optional 不是指针,也不是引用,它是一个值类型(Value Type)。 泛型 ():它可以包装任何类型(Int, Struct, Class, Enum, Closure 等)。 :表示这个枚举的 case 是固定的,不会在未来版本增加。这允许编译器进行深度的内存布局优化。 :这个协议允许你直接用 赋值。当你写 时,编译器实际上将其转化为 。 --- 2. 内存布局与优化 (Memory Layout) 这是 Optional 底层最有趣的部分。Swift 编译器会根据 类型的不同,采用不同的内存布局策略,以节省空间。 A. 普通类型 (无额外位) 对...