Int {return 11} guard case let output = howMany(), output > 10 el-6ren">
gpt4 book ai didi

swift - 非枚举的 "guard case let"是如何工作的

转载 作者:搜寻专家 更新时间:2023-10-31 19:27:38 25 4
gpt4 key购买 nike

拜托,谁能解释一下为什么会这样?

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,如果你明白我的意思。)

这个构造的整体思想是,它让您可以使用普通的 ifguard,同时利用 switch case 模式匹配。一个主要用途是在没有重量级 switch 构造的情况下从枚举中提取关联值,但您可以在条件中的模式匹配有意义的任何地方使用它(如此处)。

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

关于swift - 非枚举的 "guard case let"是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47444142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com