# 弱
**弱引用修饰符:不持有对象,目标释放后自动变 `空`。**
```xuantie
型 子节点 {
弱 设 父: 父节点?
}
```
## 你可以……
- **打破循环引用**——父强引用子、子弱引用父,ARC 不再互相锁死:
```xuantie
型 父节点 {
设 子列表: 数组<子节点>
}
型 子节点 {
弱 设 父: 父节点?
}
```
- **声明局部弱引用变量**——`弱 设`,对象释放后自动归零:
```xuantie
设 强引用 = "数据"
弱 设 观察者 = 强引用
强引用 = "新对象" // 唯一强引用被覆盖
示("观察者: #{观察者}") // 空
```
- **在构造里给弱引用字段赋值**——不增加引用计数:
```xuantie
型 子节点 {
弱 设 父: 父节点?
函 造(p) { 此.父 = p }
}
```
## 注意
- 弱引用字段的类型应带 `?`(可空),否则编译器给出 W005 警告(严格模式升级为错误)。
- 弱引用指向的对象随时可能释放变 `空`,使用前需判空。
- 闭包弱捕获 `函() [弱 此] { ... }` 尚未实现。
## 相关
[型](型.md) · [口](口.md) · [此](此.md)