Swift 6.3 推进了 Swift 的跨平台发展,提供了官方的 Android 支持,通过新的 @c 属性显著提升了 C 互操作性,并持续扩展嵌入式编程支持。它还通过统一构建系统方向强化了生态,并赋予开发者更多底层性能控制能力。
为了扩展与 C 语言的互操作性,Swift 6.3 引入了两个新属性,@c 和 @implementation。使用 @c 注解的 Swift 函数会在生成的 C/C++ 头文件中自动获得对应的声明,从而可以在 C/C++ 代码中调用它。如果你希望为现有的 C 声明提供 Swift 实现,可以将 @c 与 @implementation 结合使用,在这种情况下,编译器会确保该 C 声明已经存在。
Swift 6.3 还引入了模块选择器,使你在不同模块中存在相同符号时能够消除函数调用的歧义,从而更容易显式引用期望的实现。例如:
import ModuleAimport ModuleBlet x = ModuleA::getValue() // 调用来自 ModuleA 的 'getValue'let y = ModuleB::getValue() // 调用来自 ModuleB 的 'getValue'新的 weak let 声明移除了类和闭包在并发上下文中使用弱引用的一个长期限制。在之前的版本中,weak 修饰符只能与对象引用一起使用,即使用 weak var,这会使这些引用变为可变,从而不可发送。weak let 允许以并发安全的方式在闭包中捕获一个非引用的、不可变的符号。
语言的其他扩展为编译器优化提供了更细粒度的控制,包括使用 @specialize 对泛型 API 进行特化实现、使用 @inline(always) 保证方法内联等。
如前所述,Swift 6.3 稳定了 Swift 的 Android SDK,该 SDK 之前仅在 nightly 构建中以预览形式提供,帮助开发者将其 Swift 包移植到 Android。
通过该 SDK,你可以开始使用 Swift 开发原生 Android 程序,更新你的 Swift 包以支持构建 Android 版本,并使用 Swift Java 和 Swift Java JNI Core 将 Swift 代码集成到现有的 Kotlin/Java 编写的 Android 应用中。
最后需要指出的是,Embedded Swift 也取得了显著进展,包括向嵌入式与非嵌入式 Swift 的统一链接模型迈进、改进调试能力、通过 @section 和 @used 属性提供更多链接控制、通过 Swift SMMIO 增加对内存映射 I/O 的支持等。
原文链接:
https://www.infoq.com/news/2026/04/swift-6-3-android-c-interop/





