scala之逆变、协变

//负号:逆变.方法的输入,用-修饰,是scala中的一种泛型,

//正号:协变.方法的输出,用+修饰

是scala中的一种泛型

在trait中定义的方法,参数列表为逆变,方法返回的数据类型为协变

package com.doit.scala.yinshizhuanhuan
//负号:逆变.方法的输入
//正号:协变.方法的输出
trait Function1[-A,+B] {
 def test(a:A):B
}
object Func1Test{
  def main(args: Array[String]): Unit = {
    val f = new Function1[Char,Int] {
      override def test(a: Char): Int = {
        a.toInt
      }
    }
    println(f.test('a'))


  }
}

偏函数

偏函数使用在匹配类型中,继承了用逆变,协变为泛型的接口来限定数据类型

package com.doit.scala.yinshizhuanhuan

object PartialFuncDemo {
  def func1: PartialFunction[String,Int]={
    case "one" => 1
    case "two" => 2
    case _ => -1
  }

  def main(args: Array[String]): Unit = {
    println(func1("one"))
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值