Swift 4.2的新功能-我的摘要

星期三。 六月06,2018

我刚刚看过WWDC 2018的Swift新增功能,我认为写一篇关于此演讲的博客文章并总结我的学识是一个很大的动力。

这是我真正喜欢的一些Swift 4.2新功能。

希望您会喜欢! 🤓

SE-0194枚举案例的派生集合

如果需要打印所有可用的枚举值,则必须创建一个包含所有枚举大小写的辅助变量。 例如,一个名为allCases的静态数组。 这种方法的一大缺点是,每次修改枚举allCases时,我们都需要记住要更新allCases数组。

Swift 4.1的方法:

在Swift 4.2中,我们可以使用CaseIterable协议来为我们完成所有工作! 请看下面的例子:

条件符合

它也将与OptionalDictionary类型一起使用。 条件一致性与HashableEncodableDecodable协议的工作方式相同。 例如,因为IntHashable ,那么在这种情况下,这意味着Int? 也是可Hashable ,因此[Int?]也可Hashable

布尔切换

很小,但我认为-非常好的功能。 在阅读objc.io博客文章时,我第一次遇到该扩展程序。

现在它已内置到Swift 4.2中。 🎉

哈希协议

 protocol Hashable { func hash(into hasher: inout Hasher) } 

在Swift 4.2中,我们不必为hashValue提供自定义算法。 现在,swift可以处理具有运行性能的哈希方法质量。 重要的是, hashValue使用在每个应用程序启动时创建的随机的每个进程的种子。

In️在这种方法中,您应该将与hashValue相关的代码更改为常量。 在每次运行的应用程序中,哈希值都将不同。 ⚠️

SE-0202随机统一

Swift 4.1的方法:

但是在Swift 4.2中,不再需要使用arc4random()了。 🎉

超级酷的事情是,我们可以从ArrayDictionary等Collection类型中获取随机值。

您可能会注意到,由于我们在空集合上调用此函数的情况, randomElement函数将返回Optional。

另一个新功能是shuffleshuffle功能。

结论

最好在稳定版本中使用这些功能。 就目前而言,我对使用Xcode 10(beta)和Swift 4.2的印象非常惊人。 我强烈建议您观看WWDC 2018的Swift新增功能。

在下面,您可以找到具有上述所有功能的GitHub要点的链接。

https://gist.github.com/kamwysoc/e9322c84fd4fa051cb747ec08193dc0d

资源

https://developer.apple.com/videos/play/wwdc2018/401/

Swift.org
Swift是一种通用的编程语言,使用安全性,性能和软件的现代方法构建而成…… swift.org

关于我

我是波兰格但斯克的软件开发人员。 大多数情况下都使用iOS,但我对其他任何技术,框架和挑战都持开放态度。 如果您喜欢我的帖子,请随时在Twitter上关注我并阅读我的个人博客。

iOS开发人员,程序员

Kamil Wysocki iOS开发者©2018

最初于 2018 年6月6日 发布在 wysockikamil.com