跳转至

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