今年六月,Apple 推出了 Swift System,这是一个底层系统接口库。现在 Swift System 已开源并增加了 Linux 支持。Apple 称,他们的目标是为所有受支持的 Swift 平台的底层系统接口提供常态化解决方案。
如多数常规操作一样,Swift 支持 C 接口,但是从 C 导入的一些弱类型系统接口可能容易出错且难以处理,无法充分利用 Swift 的类型安全特性。因此,Swift System 模块引入了多种语言功能,以提高表达能力并消除出现错误的机会。
Swift 团队工程师 Michael Ilseman 举了这样一个例子:Swift System 使用 FileDescriptor
命名空间中的默认参数将 open
系统调用定义为静态函数:
与 C 版本相比,Swift System 普遍使用原始的可表示结构和选项集,这些强类型有助于在编译时捕获错误,而且能够方便地在弱 C 类型之间来回转换。标准语言机制和信号中断重试行为也极大地简化了错误和信号处理。另外,与 UnsafePointer<CChar>
相比,FilePath
使用起来更加安全。
Swift System 是一个多平台库,而非跨平台。它根据特定情况,为每个受支持的平台提供单独的 API 和行为。目前 Swift System 处于起步阶段,仅包括少量系统调用、currency 类型和一些方便的功能。为扩大 API 覆盖范围,Apple 表示正致力于在 Swift Package Manager 中采用 Swift System。同时,Swift 对 Windows 的支持也会进一步增强。
暂无回复。