使用地图解开Swift Optionals
阅读优秀程序员编写的源代码是改进我们编码方式的最简单方法。
我一直很欣赏objc.io上的人编写的代码。
有一天,我读了约翰·桑德尔(John Sundell)的一篇关于Swift中的期货和承诺的文章。 由于具有可选功能,在阅读该文章时我还不了解,因此理解起来并不容易。 Futures and Promises本身是一个复杂的概念,但是我在一些代码片段中发现的是一种不常见的方法来解开optionals 。 本文还可以帮助理解John Sundell编写的代码。 我们通常使用if let或guard let 解开可选内容的语法。 通常用于解开可选字符串( 或任何其他类型的optional )的代码如下
现在让我们讨论解开可选内容的不常见方式。 我们可以使用map函数来展开可选对象。
你不惊讶吗? 好吧,我是。 我一直以为map应该与Sequences一起使用。 现在这个想法已经改变。
根据Apple的文档,关于可选方法的map方法的描述如下
当此
Optional
实例不为nil
,计算给定的闭包,将未包装的值作为参数传递。
这意味着如果一个可选参数具有某个值 ,将执行给map函数的闭包 。 特别是闭包将收到解包的可选参数。
因此,我们可以使用下面的代码使用map函数来展开可选字符串。
现在,如果您尝试阅读有关Swift中的期货和承诺的文章,您将更好地理解它。
现在,我们知道了另一种安全地包装可选内容的方法,这是我们可以用来提高代码可读性的方法。
你喜欢这篇文章吗? 也许尝试以下方法之一:
- 在Swift中使用ExpressibleByArrayLiteral简化生活
- 驯服宽松的通知
- 断点作为调试内容提供者
- 在核心数据中使用可变类型作为可转换属性的危险