几天前,我发布了一个Swift问题(Using Switch with Arrays)并迅速找回了一个漂亮的答案。从那以后,我一直试图在我的脑海中分解这个陈述:
case let word where excludedWords.contains(word):
由Swift解析并执行。在我看来,“让...”这个词......'首先评估部分,对于排除的词中每个单词的出现,Swift将其传递回案例进行评估。我没有找到任何文件,Apple或其他文件,它们确切地解释了它是如何工作的。
有人能否详细解释这个结构在Swift中是如何工作的?
答案 0 :(得分:2)
从language reference(跳转到Switch语句部分):
switch
个案可以选择在每个模式后包含where子句。where
子句由where
关键字后跟表达式引入,用于在案例中的模式被视为与控制表达式匹配之前提供附加条件。如果存在where
子句,则仅当控制表达式的值与案例的某个模式匹配且where
子句的表达式求值为{{}时,才会执行相关案例中的语句。 1}}。
我将在此处提供您的其他问题的答案以供上下文使用:
true
执行将如下:
switch eachWord {
case let word where excludedWords.contains(word):
// Do Something
default:
// Do another thing
}
let word = eachWord