scala case语句中的中置表示法

如果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+:......



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值