Swift“其中”关键词

前端之家收集整理的这篇文章主要介绍了Swift“其中”关键词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
免责声明:swift noob

嗨,我刚刚开始学习Swift,并且正在通过Swift编程语言(WWDC发布的苹果书),并且想知道“where”关键字是什么。它被用于

let vegetable = "red pepper"
switch vegetable {
case "celery":
    let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber","watercress":
    let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
    let vegetableComment = "Is it a spicy \(x)?"
default:
    let vegetableComment = "Everything tastes good in soup."
}

摘录自:苹果公司“Swift编程语言”iBooks。 https://itun.es/us/jEUH0.l

如果有人可以用另一种语言(java,c,obj-c等)来解释和/或显示出相当的东西,那将是很棒的。

道歉,如果这已经被问到,我没有看到任何地方。

Swift的switch语句比大多数其他语言使用的语句更强大。它们不是简单地从一组值中选择,而是使用模式匹配来选择要评估的情况。我们来看看你的例子中的每个案例:
case "celery":

超级简单 – 这将匹配字符串“芹菜”,没有别的。

case "cucumber","watercress":

这种情况将匹配字符串“cucumber”或字符串“watercress”。凉。在其他语言中,您可能需要使用一个突破性的案例来获得这两个。

case let x where x.hasSuffix("pepper"):

这个例子包含了与Java和C进行比较时Swift switch语句特有的两个概念。第一个是值绑定 – 这个语句的let x部分将匹配的值绑定到一个范围x的范围内。

接下来是where子句。这是一个布尔测试,就像if语句一样,所以如果表达式为true,则仅匹配。在这个例子中,x.hasSuffix(“pepper”)查看绑定的值,并检查它是否以“胡椒”结尾。字符串“红辣椒”,“青椒”和“辣辣椒”都会匹配,但“胡椒”不会。

default:

在Swift中,switch语句需要耗尽匹配值的所有可能值,因此它们通常以默认值:case块结束,以处理之前未匹配的任何值。唯一的时候,你不会看到这一点,如果你只匹配一个枚举只有几个值,因为你可以手动耗尽所有的选项。

猜你在找的Swift相关文章