If Statement

一個正常的 if 如下:

if (legCount == 0) {
   println("It slithers and slides around")
} else {
   println("It walks")
}

在 Swift 中,( ) 是 optional 的,可寫可不寫,因此可以變成下面的樣子:

if legCount == 0 {
   println("It slithers and slides around")
} else {
   println("It walks")
}

要注意的是,{ }是必要的,不能省略。

More Complex If Statements

更複雜的 if 寫起來像這樣:

if legCount == 0 {
   println("It slithers and slides around")
} else if legCount == 1 {
   println("It hops")
} else {
   println("It walks")
}

當然,複雜一點我們就會想要改用 switch

Switch

Swift 的 switch 如下:

switch legCount {
case 0:
   println("It slithers and slides around")
case 1:
   println("It hops")
default:
   println("It walks")
}

可以發現的是,不用寫 break 啦,Swift 甩開了舊時代的包袱,switch 不需要 break來阻擋程式碼往下繼續走。


Switch 也脫離了 c 的限制(只能使用 integer)。現在的 switch 可以使用更多的東西來比對:

switch sender {
case executeButton:
   println("You tapped the Execute button")
case firstNameTextField:
   println("You tapped the First Name text field")
default:
   println("You tapped some other object")
}

可以用物件(instance)當做 key。


當然你也可以使用 multiple(多重) case,例如:

switch legCount {
case 0:
   println("It slithers and slides around")
case 1, 3, 5, 7, 9, 11, 13:
   println("It limps")
case 2, 4, 6, 8, 10, 12, 14:
   println("It walks")
default:
   println("can't find leg")
}

Matching Value Ranges

除此之外,也可以用範圍來當 case 的條件

switch legCount {
case 0:
   println("It has no legs")
case 1...8:
   println("It has a few legs")
default:
   println("It has lots of legs")
}

下一篇: Functions