如何为非enums工作“保护案例”

时间:2017-11-22 21:29:33

标签: swift

拜托,有谁可以解释为什么这有效?

Int

我理解 guard / if / while / for case 如何与枚举一起使用。模式匹配很棒。但这里没有枚举,这也有效。什么是允许的语言结构?

(这个例子来自Matt Neuburg的书。)

1 个答案:

答案 0 :(得分:3)

它是if case构造。 (guard只是一个负面if,如果你明白我的意思。)

这个结构的全部思想是它允许你在利用switch case模式匹配的同时使用普通的ifguard。主要用途是在没有重量级switch构造的情况下从枚举中提取相关值,但是您可以在条件有条理匹配的任何地方使用它(如此处所示)。

另见https://stackoverflow.com/a/37888514/341994