# 运算符重载

URL: https://caijiao.org/swift/11-advanced/03-operator-overload
Source: docs/swift/11-advanced/03-operator-overload.md
Description: 本章介绍 Swift 中运算符重载的用法，帮助开发者自定义类型的运算行为，实现灵活的操作符扩展。

运算符重载允许自定义类型实现或修改已有运算符的功能，使其支持特定操作。

## 基本语法

通过定义静态函数实现运算符功能：

```swift
struct Vector2D {
    var x: Double
    var y: Double

    static func + (left: Vector2D, right: Vector2D) -> Vector2D {
        return Vector2D(x: left.x + right.x, y: left.y + right.y)
    }
}
````

## 使用示例

```swift
let v1 = Vector2D(x: 1.0, y: 2.0)
let v2 = Vector2D(x: 3.0, y: 4.0)
let v3 = v1 + v2
print("结果：(\(v3.x), \(v3.y))")  // 输出：(4.0, 6.0)
```

## 可重载的运算符

* 算术运算符（+，-，\*，/）
* 赋值运算符（+=，-= 等）
* 比较运算符（==，!=）
* 逻辑运算符等

## 注意事项

* 避免运算符重载导致代码难以理解。
* 保持运算符语义清晰和一致。

## 总结

运算符重载增强类型的表达能力，使代码更简洁直观，但需合理设计以保证代码可读性。
