在 SwiftUI 中, 是一个非常核心的属性包装器(Property Wrapper)。 简单来说, 就像是通往其他视图所拥有的数据的“读写通道”或“引用”。 它自己不存储数据,而是允许你读取和修改存储在别处(通常是父视图)的数据。 下面我将从定义、代码示例以及底层原理三个方面详细解释。 --- 1. 什么是 ? 不拥有数据: 使用 修饰的变量,不会在内存中开辟空间来存储实际的值。它只是一个指向某个“真理之源”(Source of Truth,如 )的引用。 双向连接: 它在两个视图之间建立了双向连接。 父视图数据变了 $\rightarrow$ 子视图自动更新。 子视图修改了数据 $\rightarrow$ 父视图的数据源也会同步修改。 生活中的类比: 想象你家客厅有一盏灯(数据源,)。你给了你室友一个遥控器()。 灯在客厅(父视图)。 遥控器在室友手里(子视图)。 室友按遥控器(子视图修改 Binding),客厅的灯(父视图 State)就会亮或灭。 --- 2. 代码示例:它是如何工作的? 让我们看一个最简单的例子:父视图控制一个开关,子视图也能控制同一个开关。 子视图 ...