如何对具有多个参数列表的类进行模式匹配?
|
考虑此类:
class DateTime(year: Int, month: Int, day: Int)(hour: Int, minute: Int, second: Int)
如果我想与以下内容匹配,则look1:方法的外观如何:
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))
但这并没有真正起作用。
没有找到相关结果
已邀请:
3 个回复
体悉
如果不是case类,则可以将unapply定义为所需的任何内容,因此这实际上取决于该类的实现者。默认情况下,没有取消应用,因此您只能在类型上进行匹配。 如果要使用精美的案例类功能,包括能够在所有事物上进行匹配和相等,但又要进行某种划分,则可以嵌套案例类:
掸牛浓疗
疏腔傻小雹
。如果您改用
(即
,我认为它可能会起作用)。