警卫声明

掌握方向,清理代码,应用防护措施。

跟踪您的范围以及在Swift代码中可以访问哪些值和函数可能非常棘手,并且由于在Swift中大量使用了可选选项,处理这些可选情况可能会令人不知所措,并且您可能会迷失方向您的代码非常容易。 一种解决方案是使用保护性语句使代码更整洁,并在处理可选内容时避免缩进。

等等,什么是警卫声明?

保护性声明是一种迅速使代码执行检查的声明。 如果满足此检查条件,则代码将在范围内继续,但是如果不满足条件,则它将代码移出范围(正常失败)。 您可以为guard语句设置任何您喜欢的条件。

这里是:

一种看待这种情况的方法是,您有一扇门,如果人们不满足条件,门就会礼貌地把人们拒之门外。

为什么要使用它?

现在为什么要使用防护装置? 这不只是一个if语句吗? 为什么不使用if else语句检查nil或处理可选内容? 为什么要在词汇表中添加更多语法? 警卫声明会不会让初次编码的人感到不知所措?

好的,克里斯·华莱士,放松一下。

当然,这是您必须习惯的新语法,但是请放心,guard语句是将hullaballoo代码放入工具箱的好工具。 为什么? 原因有2个,它使您的代码更具可读性,并且实际上为您包装了可选内容以供您在代码中使用。

“解开可选项目? 为此,我可以使用if let语句,而无需学习新的语法。请参阅,过度使用if语句的可选绑定会导致Doom金字塔 。 这意味着代码被嵌入到if语句,缩进和方括号的多个级别中,这些语句最后类似于金字塔,并且(对于我个人而言)使您迷失在自己的代码中。

厄运金字塔

可选项的存在意味着swift拥有更多的安全检查和模板来安全地运行您的代码,这意味着更多的检查和方括号,并且您会多次陷入厄运金字塔。 使用保护性语句意味着您不会经常遇到这些语句,并且任何阅读您的代码的人都不会对代码某些部分的范围感到困惑,并且您的代码看起来像是一系列的门,而不是金字塔,非常清晰干净。 现在,对我来说,这只是巩固了一点,后卫的声明真是棒极了

好的,让我们尝试使用警卫语句来分析字典,可选和nil的雷区,如果您不相应地构建代码,它们会很快造成混乱。 这是我们编写的第一个代码,不使用保护语句,也不使用if let可选绑定来获取数据。

你现在在树林里。

它会变得非常混乱,非常快。 现在,让我们尝试使用Guards语句。

啊……那更好。

干净,就像一系列的大门一样,有趣阅读。

结论:警卫使您的代码看起来更好,更清晰,而学习新语法的代价却很小。

现在……警惕!