Swift 编码风格¶
此文件使用 Swift 特定内容扩展 common/coding-style.md。
格式化¶
- 自动格式化使用 SwiftFormat,风格强制使用 SwiftLint
- Xcode 16+ 捆绑了
swift-format作为替代
不可变性¶
- 优先使用
let而非var— 将所有内容定义为let,仅在编译器要求时改为var - 默认使用值语义的
struct。仅在需要同一性或引用语义时使用class
命名¶
遵循 Apple API 设计指南:
- 在使用处保持清晰 — 省略不必要的单词
- 方法和属性应根据角色而非类型命名
- 常量优先使用
static let而非全局常量
错误处理¶
使用类型化 throws(Swift 6+)和模式匹配:
func load(id: String) throws(LoadError) -> Item {
guard let data = try? read(from: path) else {
throw .fileNotFound(id)
}
return try decode(data)
}
并发¶
启用 Swift 6 的严格并发检查。优先使用以下:
- 跨越隔离边界的数据使用
Sendable值类型 - 共享可变状态使用 actor
- 优先使用结构化并发(
async let、TaskGroup)而非非结构化Task {}
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC