Swift 周报 第六期
前言
译者言:周日立冬,北方多地迎来 2021 年的第一场雪,上海也降下大雨,此时你所在的城市降温了吗?记得添衣保暖,避免感冒生病影响工作和生活。
Xcode 13.2 Beta 版已具备并发支持,该特性将有助于解决很多 Swift 开发者的某些痛点。或许 Swift 内置的并发系统最重要的好处是,它允许以更简单的方式,并行执行多异步任务。可以想像,通过增加执行任务的速度这将节省我们更多时间。
Kristaps Grinbergs Swift 周报负责人在本期周报中公开自己将不再领导 Swift 周报项目,原文如下:
我非常高兴地编写这么优秀并且已经运营了三年的 Swift 新闻周报。我遇到了很多了不起的人,并且感谢你们所有人,我已经收获了很多! 这是为什么打出下面这句话,让我感慨万千的原因。第 200 期周报将是我运营的最后一期。我已经决定不再领导这个项目,并且怀着愉悦的兴奋,我正在寻找愿意继续管理 Swift 周报的人。
为了 Swift 社区周报持续稳定的发布更新,我们希望邀请 Swift 爱好者参与周报编辑,同时邀请赞助商对我们平台赞助支持。
入门任务
SR-15408 [Swift-DocC] 用含有空格的回调显示名称构建文档会产生一篇无法阅读的文章
译者注: 如果将带有空格的回调显示名称(如 --fallback-display-name “My Display Name”)以及有效的符号图传递给 DocC,DocC 会生成一篇以“我的显示名称”作为 H1 的文章标题并将其组织在顶级框架页面上的“文章”主题组下。
新闻和社区
新的 Xcode 13.2 Beta 增加了对 macOS 10.15、iOS 13、tvOS 13 和 watchOS 6 或更高版本的 Swift 并发支持。 这种支持包括async/await
、actor、全局 actor
,结构化的并发及其任务 API。
Tim Condon 发布了 Vapor 已经支持 async/await
。
Konrad ktoso Malawski 写了一篇介绍 Swift Distributed Actors 的文章。
Marc Aupont 将加入 Diversity in Swift 工作组。
Swift 下载链接已移至新位置以提供更快的下载速度! 工具链将托管在 download.swift.org,它将使用与当前 URL 类似的模式。 要使用新 URL,请将 swift.org/builds/ 替换为 download.swift.org/。 从 2021 年 10 月 26 日开始,swift.org/builds URL 已重定向到新的子域。
Sarun Wongpatcharapakorn 写了一篇博文解释 Swift 中的 KeyPath。
Commits 和 pull requests
Erik Eckstein 合并了一个 pull request
,该请求实现了性能注释的原型,如 Swift 中的 @_noLocks
和 @_noAllocation
。
Slava Pestov 合并了一个 pull request
,该请求改进了对“身份一致性”的处理 [P].[P] => [P]。
John McCall 合并了一个 pull request
,该请求修复了高度对齐的结果类型的未来片段的对齐方式
同意的提案
SE-0325 附加包插件 API 提案已被修改并同意。
正在审查的提案
SE-0326: 多语句闭包参数/结果类型推断正在审查中.
Kristaps Grinbergs 建议通过启用闭包体的参数和结果类型推断,来改进多语句闭包推断行为。 这将令类型推断更符合开发者的预期,并且移除现存的行为壁垒,即向闭包添加一个表达式或语句会导致编译失败的结果。
SE-0327: On Actors and Initialization正在审查中。
Actors 是 Swift 中相对较新的名义类型,为其可变态提供了数据竞争安全性。数据保护是通过将每个 actor
实例可变状态一次最多隔离一个任务来实现的。引入 actor
(SE-0306)的提案非常庞大和详细,但忽略了创建和销毁 actor
隔离状态的一些细微之处。 该提案旨在支持一个 actor
的定义,为了弄清一个 actor
实例的数据隔离何时开始和结束,以及在一个 actor
的 init
和 deinit
函数声明中能够做什么。
SE-0328:Structural opaque result 类型正在审查中。
Opaque 结果类型可以用作函数的结果类型、变量的类型或者下标的结果类型。在所有情况下, Opaque 结果类型必须是整个类型。该提案建议解除该限制,并且在“结构性”的位置中允许使用 Opaque 结果类型。
Swift 论坛
I
一个来自 @justkwin 关于 Foundation
如何使用 URL
结束来表示 file.paths
的小历史教训。
II
Anders Bertelrud 提出了添加包管理器命令插件的提案。
SE-0303 引入了第一种 SwiftPM 插件,专注于使用自定义构建工具调用扩展构建系统的能力(特别是为了生成源代码)。 那些插件一直计划成为第一种被 SwiftPM 支持的插件。
Kristaps Grinbergs 想提出一个提案草案,为 SwiftPM 添加另一种更通用目的的“命令插件”。 这些类型的插件可以由用户直接调用,用于源代码格式化、文档生成、测试报告生成等。命令插件不一定与构建系统有任何关系。
这些自定义命令插件一个重要的方面是它们可以要求插件主机(SwiftPM 或支持包的 IDE)按需生成专门的信息,或着初始化构建或测试运行。 这是提案草案中最需要仔细审查的部分。 在使 API 足够丰富以令其尽可能有用,同时也使其足够通用以不仅在 SwiftPM 中而且 IDE 中支持 Swift 包,这里有一个相悖的因素。
III
Guillaume Lessard 提出了一项提案,该提案将实现指针族初始化改进。
UnsafeMutablePointer
系列中的类型通常需要手动管理内存分配,包括对其初始化状态的管理。 涉及的状态是在分配后:
- 未绑定和未初始化时(当在
UnsafeMutableRawPointer.allocate()
返回) - 绑定到一个类型,并且未初始化(从
UnsafeMutablePointer<T>.allocate()
返回) - 绑定到一个类型,并且初始化
无论何时它未曾被初始化,内存都能够安全地销毁。
不幸的是,不是每一个 UnsafeMutablePointer
系列中的类型有这个必要功能,以用于全面管理它内存初始化的状态。 我们打算在本提案中解决这个问题,并提供在各种更广泛的情况下管理初始化状态的功能。
IV
Kelvin Ma 展开了一个关于 AsyncStream
构造函数的讨论,该构造函数也返回其 Continuation
。
有没有什么方法我们可以向 AsyncStream
添加一个 API,它直接返回 Continuation
,从而我们就不必把它的闭包“调来调去”?
一般来说,我也觉得 AsyncStream
真的很难使用,因为迭代在创建了 AsyncStream
的同一个任务中发生,甚至是没有并发迭代时曾出现。 这使“订阅” actor
对象生成的事件变得困难,即使订阅方法被标记为 nonisolated
。
V
Adam Fowler 积极将 MQTTNIO
库加入 SSWG 包列表中.
MQTT 是一种通常用于与 IoT(物联网)设备进行通信的消息传递协议。 它是一种轻量级的发布/订阅消息传输,旨在具有较小的代码占用空间和网络带宽。
VI
Cory Benfield 向我们更新了关于 SwiftNIO Swift
版本支持。
SwiftNIO 团队已将其作为我们工作流程的主要支柱,以尝试在相当长的时间内支持 Swift 版本。大多数用户没有利用这一点,更愿意继续使用最新版本的 Swift,但我们认为重要的是你要有信心,新编写的应用程序将在未来获得一些有意义的支持。
VII
Victoria Mitchell 写了一篇关于扩展 Swift-DocC
以支持 Objective-C
的文档。
DocC
的架构目前仅支持 Swift
一个语言的渲染符号文档。然而,有些跨语言项目可以从将多个“语言变体”收集到同一组文档中受益,例如可以被 Swift
中调用的 Objective-C
API,反之亦然。
关于我们
我们是由 Swift 爱好者共同维护,我们会分享以 Swift 实战、SwiftUI、Swift 基础为核心的技术内容,也整理收集优秀的学习资料。
感谢 SwiftWeekly 与我们的合作,开启 Swift 周报中文版发布之旅。
周报仓库:https://github.com/SwiftCommunityRes
后续还会翻译大量资料到我们公众号,有感兴趣的朋友,可以加入我们
Swift 周报 第六期相关推荐
- Swift 周报 第四期
前言 最近 Swift.org 进行了一些非常好的改进,包括对 dark mode 的支持. 对于在 iOS 上使用 dark mode 的用户,该网站将自动切换模式以匹配. 为了 Swift 社区周 ...
- Swift 周报 第十七期
前言 本期是 Swift 编辑组自主整理周报的第八期,每个模块已初步成型.各位读者如果有好的提议,欢迎在文末留言. 欢迎投稿或推荐内容.目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理. 风 ...
- 微信小程序周报(第六期)
2019独角兽企业重金招聘Python工程师标准>>> 微信小程序周报(第六期) 客户被绑,蒙眼,惊问:"想干什么?" 对方不语,鞭笞之,客户求饶:"别 ...
- iOS摸鱼周报 第八期
iOS摸鱼周报,主要分享大家开发过程遇到的经验教训及学习内容.虽说是周报,但当前内容的贡献途径还未稳定下来,如果后续的内容不足一期,可能会拖更到下一周再发.所以希望大家可以多分享自己学到的开发小技巧和 ...
- Swift 周报 第二十九期
文章目录 前言 新闻和社区 担心泄密!外媒:苹果公司限制员工使用ChatGPT 苹果公司大幅削减其MR头显销售预期,不足百万台 提案 通过的提案 正在审查的提案 Swift 论坛 1.讨论 Swift ...
- 产品周报第30期|编辑器支持自定义写作模板;MarkDown编辑器接入质量分检测功能;CSDN APP V5.2.0版本发布
hello,大家好,这里是「CSDN产品周报」第30期.本次更新主要涉及博客.首页和CSDN APP,欢迎大家详细了解和使用. 博客产品体验优化 一.编辑器新增自定义模板创建功能 每个人都有自己的写作 ...
- 微信小程序周报(第九期)-极乐科技
每周一笑 儿子:"爸爸,哥哥毕业以后,就会当和尚,会法术了吗?" 爸爸:"傻儿子,你哥哥是学技术了,不是学法术!" 儿子:"为什么他们都说,哥哥去了济 ...
- 第六周工作周报销售_知新周报|第六周
原标题:知新周报|第六周 知新周报 一周会议汇总 距离国庆小长假又过去了一个星期,在这一周里化学化工学院又发生了哪些事呢,一起来看看吧! 1 10月8日中午十二点半,生活委员大会在十教附一104顺利展 ...
- CSDN产品周报第19期|CodeChina正式更名为GitCode、不存在有效回答的免费提问也支持自主结题啦
hello,大家好,这里是「CSDN产品周报」第19期.本次更新主要涉及首页.博客.问答.下载及CodeChina,具体细节请往下看. 一.首页优化 1.首页「热榜信息流」默认展示所有可选的内容榜单, ...
最新文章
- golang sdk后端怎么用_Golang资深后端工程师需要了解的知识点
- 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)
- 分享制作精良的知识管理系统 配置SQL Server文档数据库 完美实现博客文章的的下载,存储和浏览...
- PLSA隐变量主题模型的公式推导解惑
- win32 ——定时器消息 小程序:打印时间
- php pdf转为word,免费pdf转word软件汇总
- 人工雨量计_自动站与人工站遥测雨量计降水量对比分析
- 【知识点2】最大公约数与最小公约数
- 电子签名法学习-(1)电子认证服务机构
- IDEA安装后无法启动
- java线程池newfi_java线程池
- python爬虫数据分析项目 双十一_Python爬取淘宝商品数据,价值千元的爬虫外包项目!...
- 暗黑破坏神(DIABLOII 1.11B)BOT下载
- 【笑小枫的SpringBoot系列】【六】SpringBoot日志打印Logback详解
- ztext - 简单几行代码创建酷炫 3D 特效文字的开源 JS 库
- adguard home上网慢_AdGuardHome最新版本DNS设置负载均衡设置讨论:哪种设置快
- 函数最值题目及答案_函数的最值与导数综合测试题(附答案)
- 纯小白初识函数—主函数调用子函数:
- 微信小程序开发基础(04基础加强)
- 企业邮箱跟qq个人邮箱有什么区别?