这是我刚刚从 WWDC 上看到的一个视频,这里是亮点,在结论中是我的想法。所以你不必看它(如果你不想)。如果您这样做了,请观看 Apple 开发者门户中的视频,而不是阅读本文,因为这实际上只是我对该视频的注释。
对 Swift 包管理器的首次使用信任。
一种安全协议,在首次下载后,后续下载将根据初始下载进行验证。
Swift 包
命令插件
替换 shell 脚本,使用 Swift!这些可以在您想要作为自定义操作时运行。
从构建中生成源代码(如果插件具有写入权限),或自动执行发布任务。
本质上,这些是 Swift 包,避免将运行时内容引入您的应用程序。
构建工具插件
这些扩展了构建系统的依赖图。它们能够生成源代码或资源作为构建的一部分,并且可以应用于需要它们的每个目标(与命令插件相反)。
Swift 性能
现在可以并行执行构建(这很棒!)。诸如具有通用要求的协议之类的类型检查可能会很慢,但是现在速度要快得多,因为现在缓存了应用程序启动时的计算协议。
并发更新
数据竞争?新的并发模型已成为过去。
数据竞争安全应该防止以下情况,因为 `removeLast` 是在运行 append 之前还是之后运行?
此行为被错误捕获,因为这应该与参与者同步。
添加到actor的distributed关键字应该可以防止跨服务器使用actor时出现错误等
。仪器中的Swift并发视图
这听起来相当不错!
Swift 语言可用性
可选展开
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
if let 模式很棒!但是否可以改进而不是在 = 的两侧使用相同的变量名?对此有一个新的速记模式,
与守卫相同,而
可选
复杂闭包现在可以推断结果类型。是的,这很棒。
指针转换
使在 Swift 中更容易使用 C 函数。这很好。
正则表达式和正则表达式组件
搜索和切片是一件很痛苦的事情,所以苹果似乎希望你使用正则表达式和他们新的正则表达式生成器。
RegexComponent 是一个可重用的正则表达式组件。因为当然是。
泛型和协议
协议通常意味着“是符合此协议的实例”。但是,同时(在不同的上下文中)它可能意味着符合协议的潜在实例(它本身不符合协议)。
为了区分后者和前者,使用了`any`关键字:
var map: any Mailmap
我们可以在下面的代码中看到区别
如果泛型类型只用在一个地方,你可以使用`some`关键字。这使它们与上述协议一样易于使用。