使用地图解开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简化生活
  • 驯服宽松的通知
  • 断点作为调试内容提供者
  • 在核心数据中使用可变类型作为可转换属性的危险