位置:首頁 > 高級語言 > Swift教學 > Swift表達式模式

Swift表達式模式

表達式模式(Expression Pattern)

表達式模式代表了一個表達式的值。這個模式隻出現在switch語句中的case標簽中。

由表達式模式所代表的表達式用Swift標準庫中的~=操作符與輸入表達式的值進行比較。如果~=操作符返回true,則匹配成功。默認情況下,~=操作符使用==操作符來比較兩個相同類型的值。它也可以匹配一個整數值與一個Range對象中的整數範圍,正如下麵這個例子所示:

let point = (1, 2)
switch point {
case (0, 0):
    println("(0, 0) is at the origin.")
case (-2...2, -2...2):
    println("(\(point.0), \(point.1)) is near the origin.")
default:
    println("The point is at (\(point.0), \(point.1)).")
}
// prints "(1, 2) is near the origin.”

你可以重載~=操作符來提供自定義的表達式行為。例如,你可以重寫上麵的例子,以實現用字符串表達的點來比較point表達式。

// Overload the ~= operator to match a string with an integer
func ~=(pattern: String, value: Int) -> Bool {
    return pattern == "\(value)"
}
switch point {
case ("0", "0"):
    println("(0, 0) is at the origin.")
case ("-2...2", "-2...2"):
    println("(\(point.0), \(point.1)) is near the origin.")
default:
    println("The point is at (\(point.0), \(point.1)).")
}
// prints "(1, 2) is near the origin.”


表達式模式語法
表達式模式 → 表達式