在过去两周里又有很多新的东西~ 让我们赶紧开始吧!

入门任务

  • SR-9795 [Compiler] Cannot use super in lazy property: ‘super’ cannot be used outside of class members
  • SR-9851 [Compiler] Incorrect fixit for logical NOT operator on value of Bool? type
  • TF-46 [Tests] Create unit tests for functions in TFUtilities.
  • TF-51 [Stdlib] Check and diagnose that a graph_op is valid when creating a GraphOperationInst

播客

在这期博客里,Jon Shier,Kelvin Ma 和 Chris Lattner 讨论了将会在 Swift 5 登场的 Result 类型

社区新闻

Xcode 10.2 beta 3 版本可供下载,并且这将是 stable ABI 的一个版本。🎉🎉🎉

Ted Kremenek 写了一篇博客介绍 Swift 5.1 的最新进展。

Jordan Rose 带我们深入探讨 ABI 稳定及其相关的东西。推荐一看,特别是文章的结尾部分。

在另一篇 Swift 博客,Joe Groff 介绍了在 ABI 稳定后 Swift 的未来打算和计划

对了还有一个!Erica Sadun 写了篇文章关于改善字符串字面量的分隔符。 👏

Chris EidhofFlorian Kugler 开源了使用 Swift 语言编写的 Swift Talk 后台代码。推荐对 Swift 服务器部分感兴趣的同学学习。

Erica Sadun 写了篇文章介绍 Swift 的 extensions 中关于权限控制不合理的地方。

合并请求

Christian Schnorr 报告了一个关于 @discardableResult 的 bug,在同一天里 Suyash Srijan 合并了一个 pull request 修复这个问题! 🏎

Robert Widmann 合并了一个 pull request 用于在枚举的 case 中添加默认参数的支持。🎉

新晋提案

SE-0241: Deprecate String Index Encoded Offsets 被接受

对原始提案的反馈大部分是正向的,但少数人对某些新 API 表示了一些保留意见,并且作者同意会尽可能小地改变原始提案。这个新版本已经通过审核,但仍有一些异议:

  • 一些社区成员借此机会将他们对 String 中缺少整数索引的抱怨发布到讨论中。我们已经注意到这个问题,但应该另开一个帖子单独讨论这个问题。
  • Lily Ballard 对编码偏移的结构缺失,以及偏移与标量边界不对应时的行为表示担忧。而核心团队更赞同提案作者的观点,即与标量边界不匹配的偏移是程序员自己所犯的错误,这与 Swift 在类似行为上的表现保持一致。

审核中提案

SE-0242: Synthesize default values for the memberwise initializer 正在审核中

该提案旨在解决带有默认值的默认初始化器不能正确合成对象的问题。

译者注:

struct Dog {
  var age: Int = 0
  var name: String
}

// This now works
let sparky = Dog(name: "Sparky") // Dog(age: 0, name: "Sparky")

论坛动向

Tellow Krinkle 起草了一份有关 Generic throws草案

译者注:

// This now works
func foo(_ body: () throws -> ()) rethrows {}

// Not currently supported
func foo<T: OptionallyThrowingProtocol>(_ body: T) throws follows T {}

Kelvin Ma 起草了一份关于 Vector 类型的宣言

向量,也被理解为 2,3 或 4 个元素的数字聚合,是许多编程领域的基本通用类型。本文旨在为 Swift 语言添加标准向量,以奠定语言类型系统的长期基石。

Saleem Abdulrasool 更新了关于 Swift 在 Windows 平台的最新进展,有图有真相!

关于 Swift 在 Windows 平台移植的进展比较顺利。虽然还没有完成,但现在已经可以用它做一些有趣的事情了。我用 Swift 在 Windows 平台写了一个 Hello World 的小程序!俗话说,一图胜千言

尾声

让 Swift 的浮点数更简单? 我举双手赞成
还有这周最令人激动的新闻 😎