# 可选绑定与强制解析

URL: https://caijiao.org/swift/10-optionals/02-binding
Source: docs/swift/10-optionals/02-binding.md
Description: 本章讲解 Swift 中可选绑定与强制解析的区别与用法，帮助开发者安全访问可选值，避免运行时崩溃。

Swift 中访问可选值有两种常用方法：可选绑定和强制解析。

## 强制解析（Force Unwrapping）

使用 `!` 直接获取可选值，若值为 `nil`，程序崩溃。

```swift
var name: String? = "小明"
print(name!)  // 输出：小明

name = nil
// print(name!)  // 程序崩溃，因 nil 强制解包
````

仅在确定可选值不为 nil 时使用，风险较高。

## 可选绑定（Optional Binding）

使用 `if let` 或 `guard let` 安全地判断和解包。

### if let

```swift
if let unwrappedName = name {
    print("名字是 \(unwrappedName)")
} else {
    print("名字为空")
}
```

### guard let

用于函数早退出，提升代码整洁性：

```swift
func greet(name: String?) {
    guard let unwrappedName = name else {
        print("名字为空")
        return
    }
    print("你好，\(unwrappedName)")
}
```

## 总结

* 强制解析快速但危险，可能导致崩溃。
* 可选绑定安全，推荐优先使用，提升代码稳定性。
