Swift 5.6 发布
Swift 5.6 现已正式发布。此版本包括了对类型系统的许多增强、改进了与指针的交互,并增加了使用包管理器运行新插件命令的能力。
Swift Evolution 流程中的一些提案也在 Swift 5.6 中得以实现:
- SE-0290 - Unavailability Condition
- SE-0302 -
Sendable
和@Sendable
closures - SE-0315 - Type placeholders(以前称为“Placeholder types”)
enum Either<Left, Right> { case left(Left) case right(Right) } // Inferred as 'Either<ClosedRange<Int>, Range<Int>>' let either: Either<_, Range<Int>> = .left(0...10)
- SE-0320 - 允许在
KeyedContainer
中对非String
/Int
键入的 Dictionary 进行编码 - SE-0322 - 临时未初始化的缓冲区。这引入了一种创建临时未初始化内存空间的新方法,这在与需要提供用于存储计算结果的内存的 C API 交互时特别有用。
- SE-0324 - 放宽 C 函数指针参数的诊断。此更改允许将不安全指针的可变体(例如
UnsafeMutablePointer
)传递给采用不可变体(例如UnsafePointer
)的API,而无需显式转换。 - SE-0331 - 从不安全的指针类型中删除 Sendable 一致性
- SE-0335 - 引入了 existential any
protocol DataSourceObserver { ... } struct DataSource { var observers: [any DataSourceObserver] { ... } }
- SE-0337 - 增量迁移到并发检查。在 Swift 5.6 中,关于 Sendable 的诊断默认是被抑制的,但可以通过明确定义对 Sendable 的符合性或使用 -warn-concurrency 编译器标志来启用,从而实现并发检查的增量迁移路径。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Day.js 1.11.0 发布,轻量级时间和日期 JavaScript 库
Day.js 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,目前发布了 1.11.0 版本,带来如下改动: Bug修复 添加 Kirundi (rn) 语言环境 ( #1793 ) ( 74e5247 ) 添加缺失日期速记 D 类型定义 ( #1752 ) ( b045baf ) 将相对时间添加到加利西亚语 (gl) 并修复序数 ( #1800 ) ( dcbf170 ) 更新德语语言环境 (de-at, de-ch) ( #1775 ) ( f9055a7 ) 更新冰岛语 locale relativeTime 配置 ( #1796 ) ( 76f9e17 ) 更新 index.d.ts 注释 ( #1716 ) ( 5a108ff ) 更新语言环境德语 [de] monthsShort ( #1746 ) ( 4a7b7d0 ) 将 meridiem 函数更新为库尔德 (ku) 语言环境 ( #1725 ) ( efd3904 ) 更新 updateLocal 插件类型 ( #1692 ) ( c7a3f73 ) 特性 回退到仅语言区域设置 + 支持大写区域...
- 下一篇
每日一博 | 消息复杂计算的抽象和简化
作者:蒋文豪(四点) 消息客户端计算的复杂性 在客户端的设计中,一般的分层会至少包含下层的数据服务层和上层的UI层,下层的数据模型主要由所在领域决定,相对独立、稳定,而UI则更多变,且会对多种数据进行组合。由于UI的相对多变性与模型的相对稳定性,在数据层和UI之间,就需要对数据进行若干的处理才能交给UI展示。 比较简单的情况比如将原始数据的时间戳转换为 PD 要求的字符串,如果涉及到对不同数据进行关联、分页加载、变更计算,这部分数据处理逻辑就会比较复杂。 消息作为富客户端,这部分逻辑非常复杂,加上状态的存在,可以说是消息客户端中最复杂的逻辑之一,这种复杂主要体现在这些维度: 本地部分数据:客户端只存部分消息数据,获取数据时本地数据不全需要再异步请求服务端,还需要支持上层指定请求策略,这使得接口无法采用 request-response的形式,必须使用流式接口,数据回调和结果回调的分离,以及多次数据回调,增加了处理逻辑的复杂度; 支持变更同步:除了主动拉取,会话消息数据需要支持变更的推送,且对于所有的变更,需要保证数据(包括缓存和UI展示)的一致性; 多个数据来源:由于历史的原因,消息的...
相关文章
文章评论
共有0条评论来说两句吧...