美文网首页
Swift 周报 #75

Swift 周报 #75

作者: 梁杰_numbbbbb | 来源:发表于2017-07-24 22:24 被阅读107次

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

    本期作者: Greg Heo

    我不知道你怎么样,但我还沉浸在 WWDC 的余兴里没恢复过来。

    回到实际生活中,苹果发布了 iOS 和 Xcode 的第二个 beta 版。查看开发者网站,Xcode 9 Beta 2 的更新说明特别提到了 Swift 4 的更新和修复。

    赞助

    Advanced Swift Workshops

    磨炼你的 Swift 技能,在 workshop 里学习一些更深入的主题。诸如 Mike Ash 这样世界知名的开发者,Swift 的专家齐聚一堂,他们将会带领你探索协议,泛型,反射和 C 语言的桥接。7 月 13 日华盛顿场,以及 7 月 24 日纽约场。

    eventbrite.com

    社区任务

    写测试是一种探索标准库和语言特性的好方式,也能避免给项目留坑。

    • SR-4824:编译期添加集合类型约束的检查
    • SR-5040:将 “Exclude” 相关的功能性检查改为单元测试

    可以通过 pull request 或者 tweet 提交任务。

    Swift Unwrapped

    第 16 集:Swift 的错误处理 — 发展历史 里,主持人提到了 rethrows 和 “类型” 很多次,缅怀 Objective-C,畅谈 Swift 错误处理机制的发展史。

    资讯及社区

    Swift 团队的巨星 Joe Groff 要暂时离开 Twitter,Joe 在 Twitter 上一直对社区积极响应,我们希望他早日回归。

    聊到 Joe,他的前任 Chris Lattner (你们应该都认识)要重新找工作,虽然他说自己有 七年 Swift 开发经验,但我估计大部分公司还是想找一个有十年经验的 ¯\_(ツ)_/¯

    Xcode 9 和 Swift 4 现在还在测试阶段,现在是一个回顾所有提案的好机会,看一看 Eric Cerney 总结出来的 What’s New in Swift 4?

    Ankit Aggarwal 在 Swift 的博客里写了一篇 重新设计 Swift Package Manager 的 API,讲述新的 API 设计。Swift 的 package 描述是使用 Swift 写的,新的 API / 格式现在已经更新到了最新的语言设计规范。

    提交和合并的请求

    Philippe Hausler 提了一些关于 SE-0170: NSNumber 与数字类型的桥接反馈,主要是与 Float 和 Double 有关。如果你之前被浮点数的精度问题困扰过的话,可以查看“减少Double 和 Float 桥接的约束条件”的 commit.

    Swift 迁移工具已经 merge 到仓库里了!迁移工具的核心就是把一个文件作为输入,然后输出一份文件,包含了所有修改建议,具体细节请查看 Swift migrator library 文件夹。

    Swift 4 里大家最喜欢的 Encodable 协议,添加了对于 non-strong(weak,unowned,unmanaged)属性的支持

    Swift 问题追踪的第二个 bug 终于终于被修复了!🎉 SR-2SR-4196 描述了 switch 语法嵌入到 #if / #endif 里的时候不能很好地运行,最近的一个 commit 终于修复了这个问题.

    Xcode 9 里你可以使用 Undefined Behavior Sanitizer 检测所有未定义行为,Main Thread Checker 利用现有的 Address Sanitizer 和 Thread Sanitizer 来检测在非主线程刷新 UI 的行为,而。这些新功能都已经 merge 到 swift-lldb 里了,如果你感兴趣的话可以去看源代码。

    提案

    作为这篇去年发布的文章的跟进,Erica SadunOlivier HalligonCaleb DavenportBrian King 提交了一个关于 protocol extention 函数的 “role keywords” 的提案草稿。主要是讲了重写 protocol extension 里的函数时,需要加上一个关键字显式地声明这是一个 override 行为。

    SE-0110 想要让多个参数 (String, Int) 的函数和单个元组 (String, Int) 参数区分开来。他们看起来是不是一样?就像 Doug Gregor 在邮件列表里提到的,这个修改会让编译过程变得有点复杂:

    Swift 4 已经实现了超出 SE-0110 的内容了,特别对于闭包来说,使用体验差了很多。

    […]

    Swift 核心团队觉得这些使用体验的牺牲对于 Swift 4 来说是不可接受的。已经有好几个计划内的解决方案,给闭包提供一个更好的模型,解决用户体验的问题,但完整的设计和实现已经超出了 Swift 4 的开发目标了。所以,我们打算“回滚” SE-0110 在 Swift 4关于函数参数的修改。

    没人可以预知未来,很难了解这些提案对于 Swift 的影响,但这也是为什么我们有 snapshots builds 和 beta 版本。至于说 SE-0110 带来的影响 ,我觉得我们应该全部参与进社区里,去鼓励 Austin Zheng(SE-0110 的作者)继续坚持下去。

    没有新的提案,但照例,更多细节请查看 Swift Evolution status page

    邮件列表

    还记得 SE-0104: Protocol-oriented integers 吗?Xiaodi Wu 最近写了一些优化实现方式的想法和建议

    Halen Wooten 开了一个新的讨论,讨论作为社区的成员该如何为社区贡献。我知道邮件列表的界面很粗糙,但查看整个讨论总能有一些收获。根据文档尽量使用增量编译节省时间,我希望类似的这些技巧可以收集起来做成一份入门指南。

    最后

    学完 Swift 之后,你会希望做出什么样的语言?例如这个可能直接把访问权限去掉? 😱

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

    相关文章

      网友评论

          本文标题:Swift 周报 #75

          本文链接:https://www.haomeiwen.com/subject/risikxtx.html