最新消息3月23日消息 日前,Swift官方博客宣布,Swift 5的首选字符串编码将从此前的UTF-16切换到UTF-8,同时保留与Objective-C有效的互操作性。
根据Swift官方的说法,由于String类型的会对这些底层问题进行抽象,所以开发者不需要对源代码进行更改。切换到 UTF-8 实现了 String 的长期目标之一 —— 实现高性能处理,这也是关注性能的开发者呼声最大的请求。
更重要的是,该功能还为将来提供更高性能的 API 奠定了基础。字符串的首选编码将会成为影响 Swift ABI 性能的一部分,因此这次在 Swift 5 版本中为了 ABI 的稳定性而实现该功能是势在必行的。
在Swift 5之前,字符串内容以UTF-16和ASCII两种形式存储,出于与现代计算环境的高效兼容性、简化相关操作以及对性能提升的考虑,Swift 决定在 Swift 5 中使用 UTF-8 作为首选字符串编码。当然,目前来看这一变动对大多数开发者并没有特别大的影响,Swift官方依旧会提供与Objective-C API的高效互操作性。