Swift 关键词guard(监视)

前端之家收集整理的这篇文章主要介绍了Swift 关键词guard(监视)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果您和我一样,让代码尽早跳出以便更好地进行逻辑、数据内容的确认,虽然 Swift 自发布的第一天起就让代码提早跳出变得可能,但是它仍然还有一些需要注意的地方。首先,您需要检查不需要的条件(比如说变量为空),而不是检查您需要的条件。更重要的是,绝大多数情况下,当变量为空的时候,您往往想要让代码跳出,然后如果变量不为空的时候就继续运行,但是接下来如果您想要在剩余的代码中使用此变量的话,就需要对变量进行手动拆包。

在 Swift 2当中,Swift 团队给我们提供了一个完美的关键词:guard 来帮助我们提早跳出代码。guard同时修复了上面提出的两个问题。试想,您正在玩一个游戏,由于开发者懒得提供不同的回调,因此所有的输入变化都在一个回调函数中进行处理:

在输入无效的时候使用二次回调似乎更加有效,但是这反而证明了 guard 的极佳用处。如果可选的input是非空值,那么表示某个按钮被按下了,那么游戏会继续进行。而如果按钮不再被按下,那么input就会为空。如果我们只关注于按钮被按下的情况,我们无需使用如下所示的 Swift 1中所使用的提早退出机制:

注意到,我们将输入和我们不想处理的情况进行了比较,这里是“输入为空”的情况。更重要的是,当前的输入值仍然还是一个可选值,因此之后在函数中的使用我们都必须要使用强制解包,即使我们已经知道它是非空值。在 Swift 2 中,就变得轻松多了:

在这里,我们“监视”着input,一旦其为非空值就将其存入到 unwrappedInput 当中,否则的话就退出方法。现在我们就能够使用非空值的 unwrappedInput 了,皆大欢喜!因此,guard 能够帮助 iOS 9 代码变得更加清晰易懂,减少错误的发生。

原文链接:https://www.f2er.com/swift/325917.html

猜你在找的Swift相关文章