十一月来了!白天的时间越来越短,年末越来越近。距离 Swift 5 的发布日期也越来越近了。

入门任务

  • SR-8937 [Compiler] Switch over T? fixit does not use syntactic sugar
  • SR-8960 [Compiler] Emit a symbol reference to ensure swiftrt.o is linked on Linux/Windows

社区新闻

苹果公司正式发布包含 Swift 4.2.1 的 Xcode 10.1 版本。

Ankit Aggarwal 在推特上分享了 SwiftPM 现在可以生成代码测试覆盖

Doug GregorBen Cohen 在 WWDC 上关于范型的演讲,现在加入了全新的章节讲述关于递归约束,关联对象,带 Where 关键字的约束协议,以及分治算法的内容。请直接快进到视频的 33 分钟左右观看。看完受益匪浅的演讲,强烈推荐!

合并请求

Pavel Yaskevich merged a pull request that replaces one of the last remaining places where curry levels were still used by diagnostics.

Rintaro Ishizaki merged a pull request that improves completion for the index part of a subscript expression, allowing the compiler to help you use more complex subscripts.

新晋提案

SE-0230: Flatten nested optionals resulting from try? 被接受了

核心团队不希望轻易对源代码进行不兼容的更改,但我们也希望为未来的 Swift 用户留出改进语言的空间。 我们没有一条明确的规则来确切表明这种变更是否不可接受,相反,我们看重的是变更在实践中对现有代码的影响是否大于其潜在的风险。 在这种情况下,我们相信这种变化会带来相当无可争议的更好结果。

SE-0232: Remove Some Customization Points from the Standard Library’s Collection Hierarchy 过去在审核状态

这份提案移除了 Collection 类型内部几个 Customization Points

  • Sequence 协议中的 mapfilterforEach
  • Collection 协议中的 firstprefix(upTo:)prefix(through:)suffix(from:)
  • BidirectionalCollection 协议中的 last

上面这些默认的实现仍会被保留,所以序列及集合的这些方法仍然具有相同的作用。

现在已经被接受了

核心团队已经决定接受这份提案。(因在审核期间进行了改进)

论坛动向

Jon Shier 写了另一份关于添加 Result 类型到标准库提案的草稿。

Result 类型被普遍认为是很有用以至于可以包含在标准库中。但是,社区里有很多关于赞同或反对定义错误类型这两派的争论,导致无法达成一致的见解。

为了开始新一轮的讨论,我将会在这里更新更多最新讨论的成果:

enum Result<Value, Error> {
    case success(Value), failure(Error)
}

你可以在这里看到提案的更多内容。

尾声

上面提到的演讲视频彩蛋