Как описывает книга Programming Swift , кортежи могут быть деструктурированы либо в присваивании, либо путем привязки значения в switch
let point = (3, 2)
switch point {
case let (x, y):
print("The point is at (\(x), \(y)).")
}
let (a, b) = point
print("The point is at (\(a), \(b)).")
Я не могу найти упоминания о том, как сделать эквивалент для структур. Например:
struct S {
let a, b: Int
}
let s = S(a: 1, b: 2)
// This doesn't work:
// let (sa, sb): s
//
// Outputs: error: expression type 'S' is ambiguous without more context
// let (sa, sb) = s
// ^