Swift入门: Switch case

2020-03-19 20:48:07 浏览数 (1)

您已经看到了if语句和循环,但是Swift有另一种类型的流控制,称为switch/case。这是最容易认为这是一个先进的形式,如果,因为你可以有很多匹配和Swift将执行正确的一个。

switch/case的最基本形式中,您告诉Swift您要检查哪个变量,然后提供该变量的可能情况列表。Swift将找到与变量匹配的第一个case,然后运行它的代码块。当该块完成时,Swift退出整个switch/case块。

下面是一个基本示例:

代码语言:javascript复制
let liveAlbums = 2

switch liveAlbums {
case 0:
    print("You're just starting out")

case 1:
    print("You just released iTunes Live From SoHo")

case 2:
    print("You just released Speak Now World Tour")

default:
    print("Have you done something new?")
}

我们本可以使用很多ifelse if块来编写它,但这种方法更清楚,这很重要。

switch/case的一个优点是,Swift将确保您的案例是详尽无遗的。也就是说,如果你的变量可能有一个你不检查的值,Xcode将拒绝构建你的应用程序。

在值是有效开放的情况下,比如liveAlbums整数,您需要包含一个default大小写来捕获这些潜在值。是的,即使你“知道”你的数据只能在一定的范围内,Swift希望绝对确定。

Swift可以对case语句应用一些求值,以便与变量匹配。例如,如果要检查可能值的范围,则可以使用以下闭合范围运算符:

代码语言:javascript复制
let studioAlbums = 5

switch studioAlbums {
case 0...1:
    print("You're just starting out")

case 2...3:
    print("You're a rising star")

case 4...5:
    print("You're world famous!")

default:
    print("Have you done something new?")
}

有一件事你应该知道,Swift中的switch/case块可能不会像你看到的其他语言那样(fall through: 从一个case运行完后直接到下一个case继续运行)。如果你习惯在你的case块中写break,你应该知道Swift不需要这个。

相应的,您需要使用fallthrough关键字使一个case落入下一个case。当然,如果你不知道这些是什么意思,那就更好了:别担心!

本文来自Hacking with Swift给swift初学者的入门课程Swift for Complete Beginners 的Switch case

0 人点赞