Почему я не могу использовать константу кортежа в качестве регистра в операторе switch

Я решил поиграть со случаями и кортежами Swift. Похоже, одна из круче особенностей языка.

Я решил играть с кортежами месяц / день / год. К моему удивлению, я не могу использовать постоянное значение кортежа в качестве регистра в операторе switch. Вот пример (можно вставить в игровую площадку и запустить)

import UIKit
typealias mdyTuple = (month: Int, day: Int, year: Int)
let joesBirthday: mdyTuple = (month: 6, day: 7, year: 1978)
let someday: mdyTuple = (6, 7, 1978)

switch someday
{
  //---------
  //The line "case joesBirthday" won't compile.
  //case joesBirthday:
  //  println("Joe was born on this day"
  //---------
case (joesBirthday.month, joesBirthday.day, joesBirthday.year):
  println("Joe was born on this day")
case (joesBirthday.month, joesBirthday.day, let year):
  println("Joe is \(year-joesBirthday.year) today")
default:
  println("Some other day")
}

Закомментированный код,case joesBirthday:, не будет компилироваться (в Xcode 6.3, если это имеет значение). Приведенный ниже случай (где я перечисляю все элементы кортежа joesBirthday отдельно), который труднее набирать и труднее читать, работает)

Моя игровая площадка разбила XCode при вводе этого текста, и снова разбилась, пытаясь перезапустить XCode, поэтому у меня возникли проблемы с сообщением кода ошибки.

Хорошо, я наконец-то получил XCode, чтобы остановить сбой (после 4 сбоев подряд. Yayyy!) Ошибка «Двоичный оператор~= не может быть применен к двум операндам mdyTuple. "

Почему он пытается использовать~= операнд? Разве не похожи на кортежи?

Есть ли некоторыечистый альтернативный синтаксис, который позволяет мне использовать постоянный кортеж в случае оператора switch?

Ответы на вопрос(1)

Ваш ответ на вопрос