斯威夫特:分解"案例让..."声明

时间:2015-10-06 23:12:11

标签: arrays switch-statement swift2

几天前,我发布了一个Swift问题(Using Switch with Arrays)并迅速找回了一个漂亮的答案。从那以后,我一直试图在我的脑海中分解这个陈述:

case let word where excludedWords.contains(word):

由Swift解析并执行。在我看来,“让...”这个词......'首先评估部分,对于排除的词中每个单词的出现,Swift将其传递回案例进行评估。我没有找到任何文件,Apple或其他文件,它们确切地解释了它是如何工作的。

有人能否详细解释这个结构在Swift中是如何工作的?

1 个答案:

答案 0 :(得分:2)

language reference(跳转到Switch语句部分):

  

switch个案可以选择在每个模式后包含where子句。 where子句由where关键字后跟表达式引入,用于在案例中的模式被视为与控制表达式匹配之前提供附加条件。如果存在where子句,则仅当控制表达式的值与案例的某个模式匹配且where子句的表达式求值为{{}时,才会执行相关案例中的语句。 1}}。

我将在此处提供您的其他问题的答案以供上下文使用:

true

执行将如下:

  1. switch eachWord { case let word where excludedWords.contains(word): // Do Something default: // Do another thing }
  2. 测试let word = eachWord
  3. 如果是,请执行分支。否则,请转到默认分支