Swift 周报 #76

Swift 周报 #76,第1张

概述作者:Jesse Squires,原文链接,原文日期:2017-06-29 译者:四娘;校对:Cwift;定稿:shanks 本期作者:Garric Nahapetian Swift 的 git 仓库这周特别忙,这里有一些 GitHub 的数据: 除了 Merge 之外,总共有 39 个作者 push 了 156 个 commit 到主分支,所有分支算起来有 284 个 commit。在主分支,4

作者:Jesse Squires,原文链接,原文日期:2017-06-29
译者:四娘;校对:Cwift;定稿:shanks

本期作者:Garric Nahapetian

Swift 的 git 仓库这周特别忙,这里有一些 GitHub 的数据:

除了 Merge 之外,总共有 39 个作者 push 了 156 个 commit 到主分支,所有分支算起来有 284 个 commit。在主分支,401 个文件被修改,增 12589 删 9215 …

在 WWDC 结束不久就完成了这么多的事情实属不易,在 Swift 4 立项之后核心团队和别的贡献者完成了惊人的进展。

iOS 11 beat 2,tvOS 11 beta 2 和 Swift Playgrounds 2 beta 2 都开放下载了,点击此处下载,遇到 BUG 记得要反馈哦!

赞助链接

提升你的技能 — 成就你的职业生涯

专家带你入门到精通只需一周时间。

bignerdranch.com

Swift Unwrapped

在第 17 集:Swift 里的测试,Jesse 和 JP 讨论了如何使用 Swift 和相应的工具进行测试,保证每一个上线版本都井然有序。

资讯及社区

Greg Heo 写了一篇文章讲述 Swift 里 Encoderencodable 的原理,这个新功能会影响到很多开源的软件,了解它的原理更有助于你理解它们相关的 PR。

Matt Godbolt 的探索编译器现已支持 Swift。(译者注:这是一个学习编译原理的网站,输入代码,就可以看到编译后在对应平台上的汇编码)

DavID Owens 放出了一个 VSCode 的插件,让 VSCode 也能支持 Swift。

Swift 支援团队开源了 Swift-Evolution 的 App — Evo。

Steven Hepting 讲述了 Swift 的 sort() 方法是怎么优化的,这里可以找到相应的源码。

Learn Swift 皇后区 & Learn Swift 波兰,都落下了帷幕。 这是11期 Learn Swift {城市} 系列的合集!下次会是在哪座城市呢?

Brisk,一个反馈 bug 的 macOS app 上线了 1.0 版本 ,并且快速迭代发布了 1.0.1 版本,记得要帮忙反馈 BUG 哦!

元组门又有了更多的进展,这对我来说很有趣,因为我个人也使用过类似的方式。就像 Slava 指出的那样,这件事情始终还有优化的空间。(译者注:元组门就是闭包里的元组不再自动展开的事情,前两周的周报都有提到,详情请看 SE-0029,SE-0066 和 SE-0110)。

提交和合并的请求

Ben Cohen 发起一个新的合并请求,让 Substring 可以添加到 Hashable 容器里(详情请看下面的邮件列表讨论)。

Itai Ferber 通过了一个合并请求,修复了 SR-5277,让 class 可以与父类共用一个 Encoder/Decoder。更多详情请看这里的讨论进程。

Philippe Hausler 通过了一个合并请求,修复了 SR-5292。修复了 Foundation 里使用 slice 嵌套 slice 时产生的 BUG。

Joe Groff 通过了一个合并请求,让 KeyPath 支持可选链(Optional Chainning)和强制解包(Force UnwrapPing)。

Doug Gregor 通过了一个合并请求 ,优化了基本类型,类型别名和递归的处理逻辑,并且修复了 SR-4295,SR-4757,SR-4786,SR-5014 和 SR-4737。

Dave Abrahams 发起一个合并请求,实现了 SE-0180 字符串索引越界(后面有详细介绍)。

在命令行里运行 man swift 时展示的手册已获得更新。

Maxim Moiseev 通过了一个合并请求,修复了 [String] 使用 flatMap 时的向后兼容性,有兴趣了解的话可以查看这里的 Swift 迷思- by Robert Widmann。

DavID Farler 通过了一个合并请求,内容主要是 Xcode 9 里编译时索引功能(index-while-building)在这段时间里的改进。

如果你想知道某个修复了 rdar:// 的 PR 的细节,放心大胆地问就可以了。

审核中的提案

SE-0180: String Index Overhaul 在一些讨论之后重新退回审核阶段。

邮件列表

Erica Sadun 写了一篇文章关于 !! 这个她称为“解包或崩溃”的 *** 作符。你可以在这个 Gist 里找到相应的草稿。

使用一个 *** 作符,在解包失败时提供反馈信息,已经成为 Swift 开发者社区里普遍会实现的一个东西了,你对于把这个广泛使用的 *** 作符加入到标准库有什么想法?

译者注:使用了 !! 的代码会类似于这样 let _ = optionalObject !! "空的对象",能够在强制解包失败的时候提供 deBUG 信息,思路很棒,建议大家看一下。

Ben Cohen 发了一篇文章,内容主要是关于 Substring 性能的讨论。

作为 SE-0163 的要点之一,Substring 显式转换到 String 的问题都推迟到第一版实现之后讨论。直到现在,收到的反馈也都没有让我们觉得这样的显式转换很有必要 — 从 3.2 迁移到 4.0 的时候也不怎么需要用到 SubstringString的转换。即便不在开发目标里,只要是这方面的版本迁移问题,收到您的反馈我们都会很感谢。

[…]

Itai Ferber 在 Swift-Evolution 发了一条信息 ,征求 SE-0166 和 SE-0167 的反馈,希望社区了解到之前的很多建议已经被采纳并实现,继续提供建议和意见。

Robert Bennett 提了一个有趣的建议,希望 protocol 里可以声明 let。但我并不认为他提的算是一个问题。

我在处理协议的时候遇上了一个恼人的问题。在一个 class 或者 struct 里使用 let 去修饰一个属性并且在 init 方法里初始化是很常见的情况,但却没办法在一个 protocol extension 里实现一个这样的 init 方法。

[…]

最后

“索取”有时候比“给予”感觉更好

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg。

总结

以上是内存溢出为你收集整理的Swift 周报 #76全部内容,希望文章能够帮你解决Swift 周报 #76所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存