Swift Sendable 協議完整
在 Swift Concurrency 中安全地跨執行緒傳遞資料
📖 什麼是 Sendable?
Sendable 是 Swift 5.5+ 引入的協議,用於確保型別的值能夠安全地在不同的 actor 或並行任務間傳遞,避免資料競爭(data race)。
核心概念
- 編譯期檢查:Swift 在編譯時檢查型別是否安全
- 跨執行緒安全:確保資料在並行環境中不會被意外修改
- 自動推斷:許多型別自動符合
Sendable
✅ 自動符合 Sendable 的型別
值型別(Value Types)
// 基本型別
let number: Int = 42
let text: String = "Hello"
let flag: Bool = true
// 集合型別(元素也必須是 Sendable)
let numbers: [Int] = [1, 2, 3]
let dict: [String: Int] = ["a": 1, "b": 2]