如果unapply方法产生一个对偶,则你可以在case语句中使用中置表示法
例如 :amt match {case a Currency u=> ...} //等同于 case Currency(a,u)
当把多个中置表达式放在一起的时候:
result match {case p + q + r=>...} //case +(+(p,q),r)
如果是以冒号结尾的操作符
case p:q:r //case ::(p,::(q,r))
// case object +:{
// def unapply[T](input : List[T])=
// if(input.isEmpty) None else Some((input.head,input.tail))
// }
val result= List(1,2,3,4,6) match{
case first +: second +: rest =>first+second +rest.length //+:(f,+:(s,r))
}
println(result)
}
List(1,2,3,4,6) //也可以写成 1+:2+:......