gpt4 book ai didi

swift - case 在 if-case 中是如何工作的

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:56 32 4
gpt4 key购买 nike

老 C 程序员可以在 Swift 方面得到一些帮助。

我不太了解 if-case 语法。例如:

if case 20...30 = age {
print ("in range.")
}

case 20...30 = age 似乎是 if 语句的条件测试。因此,最初看到使用赋值运算符 ('=') 而不是比较运算符 ('==') 时,我感到很困惑。

好吧,我心想,这可能意味着 case 语句实际上是一个返回 bool 值的函数调用。返回值将满足 if 语句中的比较测试。

作为实验,我尝试将 case 语句视为常规条件测试,并在其两边放置括号。 Swift 会很乐意接受 if (x == 5)if (true)。但是 if (case 20...30 = age) 会产生错误。所以 case 语句看起来不像函数。

我只是想知道这里发生了什么。任何见解将不胜感激。

最佳答案

运算符是if case,所以不能放括号。语法和行为基于 Swift switch 语句中的 case 语句(如果需要详细信息,请参阅 my online book)。在case语句中,20...30是一个区间,用作pattern,通过contains操作code> 对区间。等号确实令人困惑,但这是他们第一次尝试用语法来表达 case 语句应该与之比较的内容(即 tag <switch 语句中的 code>switch 关键字)。

所以,如果你明白这一点:

switch age {
case 20...30:
// do stuff
default:break
}

...然后你就明白它是如何直接变成这样的了:

if case 20...30 = age {
// do stuff
}

关于swift - case 在 if-case 中是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43716891/

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