Swift元組模式
元組模式(Tuple Pattern)
元組模式是逗號分隔的列表,包含一個或多個模式,並包含在一對圓括號中。元組模式匹配相應元組類型的值。
你可以使用類型注釋來限製一個元組模式來匹配某種元組類型。例如,在常量申明let (x, y): (Int, Int) = (1, 2)
中的元組模式(x, y): (Int, Int)
,隻匹配兩個元素都是Int
這種類型的元組。如果僅需要限製一個元組模式中的某幾個元素,隻需要直接對這幾個元素提供類型注釋即可。例如,在let (x: String, y)
中的元組模式,隻要某個元組類型是包含兩個元素,且第一個元素類型是String
,則被匹配。
當元組模式被用在for-in
語句或者變量或常量申明時,它可以包含通配符模式,標識符模式或者其他包含這兩種模式的模式。例如,下麵這段代碼是不正確的,因為(x, 0)
中的元素0
是一個表達式模式:
let points = [(0, 0), (1, 0), (1, 1), (2, 0), (2, 1)]
// This code isn't valid.
for (x, 0) in points {
/* ... */
}
對於隻包含一個元素的元組,括號是不起作用的。模式匹配那個單個元素的類型。例如,下麵是等效的:
let a = 2 // a: Int = 2
let (a) = 2 // a: Int = 2
let (a): Int = 2 // a: Int = 2
元組模式語法
元組模式 → ( 元組模式元素列表 可選 )
元組模式元素列表 → 元組模式元素 | 元組模式元素 , 元組模式元素列表
元組模式元素 → 模式