1.6 KiB
1.6 KiB
| paths | ||
|---|---|---|
|
Swift 程式碼風格 (Coding Style)
本檔案擴展了 common/coding-style.md,包含 Swift 特定內容。
格式化 (Formatting)
- 使用 SwiftFormat 進行自動格式化,使用 SwiftLint 強制執行風格規範。
swift-format已與 Xcode 16+ 綁定,可作為替代方案。
不可變性 (Immutability)
- 優先使用
let而非var— 將所有內容定義為let,只有在編譯器要求時才改為var。 - 預設使用具備值語義 (Value semantics) 的
struct;只有在需要標識 (Identity) 或引用語義 (Reference semantics) 時才使用class。
命名 (Naming)
遵循 Apple API 設計指引 (Apple API Design Guidelines):
- 使用處應清晰明確 — 省略不必要的詞彙。
- 根據角色命名方法與屬性,而非根據型別。
- 對於常數,優先使用
static let而非全域常數。
錯誤處理 (Error Handling)
使用型別化抛出 (Typed throws, Swift 6+) 與模式匹配 (Pattern matching):
func load(id: String) throws(LoadError) -> Item {
guard let data = try? read(from: path) else {
throw .fileNotFound(id)
}
return try decode(data)
}
併發 (Concurrency)
啟用 Swift 6 嚴格併發檢查。優先使用:
- 跨越隔離邊界的數據使用
Sendable值型別。 - 共享的可變狀態使用 Actors。
- 優先使用結構化併發 (
async let,TaskGroup),而非非結構化的Task {}。