作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Int {return 11} guard case let output = howMany(), output > 10 el-6ren">
拜托,谁能解释一下为什么会这样?
func howMany() -> Int {return 11}
guard case let output = howMany(), output > 10 else {return}
我理解 guard/if/while/for case let 如何与枚举一起工作。模式匹配很棒。但是这里没有枚举,这也有效。允许这样做的语言结构是什么?
(这个例子摘自 Matt Neuburg 的书。)
最佳答案
这是 if case
结构。 (guard
只是一个否定的 if
,如果你明白我的意思。)
这个构造的整体思想是,它让您可以使用普通的 if
或 guard
,同时利用 switch case 模式匹配。一个主要用途是在没有重量级 switch
构造的情况下从枚举中提取关联值,但您可以在条件中的模式匹配有意义的任何地方使用它(如此处)。
关于swift - 非枚举的 "guard case let"是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47444142/
我是一名优秀的程序员,十分优秀!