Как сопоставить шаблон с классом с несколькими списками аргументов?

Рассмотрим этот класс:

class DateTime(year: Int, month: Int, day: Int)(hour: Int, minute: Int, second: Int)

как бы выглядел метод unapply например, если я хочу сопоставить что-то вроде:

dt match {
  case DateTime(2012, 12, 12)(12, _, _) => // December 12th 2012, 12 o'clock
  /* ... */
}

Я пробовал это:

def unapply(dt: DateTime) = 
  Some((dt.year, dt.month, dt.day),(dt.hour, dt.minute, dt.second))

Но это не совсем сработало.

19
задан soc 27 May 2011 в 19:09
поделиться