Optional是Swift中的基本类型。 尽管几乎无处不在,但大多数开发人员并未充分利用它,甚至没有以错误的方式使用它。 可选绑定反对DRY原理,并引入了不必要的条件。 在这个由多部分组成的系列文章中,我们将讨论Optional真正含义,如何正确使用它并应用一些高级知识,以便为Optional计算创建方便的功能性eDSL。 其他重要主题包括Swift中的依赖项注入策略,错误处理,隐式展开的Optionals和类型强制转换。 虽然不能总是避免使用最后两个,尤其是在与Objective-C代码交互时,但它们都是纯Swift的代码味道。 由于本系列的主要目的是理解功能概念以及如何在Swift中应用它们 ,因此我们将讨论和绘制而不是代码。 您会看到,还有很多工作要做。 第一部分从Optional 。 然后我们将讨论可选绑定 。 我们的旅程将把我们引向基本的功能概念: 纯功能 。 在那里,我们将停下来,探索更多内容,直到下一部分。 为什么可选? 在Objective-C中没有“ Optional这样的类型。 相反,如果函数或属性不返回值,则返回nil 空的 NSObject指针。 可以安全地将消息发送到nil并将其作为参数传递。 但是Swift没有像Objective-C这样的指针。 此外,如果任何类型可以为nil ,我们的程序如何保证类型安全? 如果我们传递nil字符串而不是数字,编译器如何弄清楚怎么办? 如果我们将nil传递给无法处理的函数怎么办? 为了处理此问题,引入了Optional 。 有什么可选的? 让我们看一下Optional声明: 枚举可选 { ///没有值 无案 ///值的存在 案例一些(包装) … } 因此,我们看到的第一件事告诉我们Optional是容器类型 :它封装了一个值。 图片 1.简单显示一个可选的Int值容器。 这里的黄色圆圈表示普通类型,而蓝色正方形表示“可选”容器。 您会看到, .none没有任何类型约束,因此使用诸如nil这样的文字很方便。 一个空盒子只是一个盒子,没有什么有趣的。 Optional还可以保护您避免将nil值传递给无法处理它们的函数。 这就是可选绑定起作用的地方。 可选绑定 可选绑定是用于访问包装到Optional的值的语句。 它看起来比声音更好,并且具有熟悉的语法。 如果您已经尝试过一些Swift,您将不会感到害怕 […]