关闭

Scala进阶27-List中的上界、下界、逆变、协变

286人阅读 评论(0) 收藏 举报
分类:
abstract class Big_Data
class Hadoop extends Big_Data
class Spark extends Big_Data

/**
  * ::是中值表达式
  * def ::[B >: A] (x: B): List[B] =
  * new scala.collection.immutable.::(x, this)
  * A是以B为上界的,或者说B是以A为下界的。返回是上界B,list是协变的,函数的参数(x:B)其实是逆变的。
  * 函数的参数时逆变的,就不能保持函数的返回结果类型是协变的了。使得list可以容纳具体的上界的所有子类型。
  */
object List_Constructor_Internals {
  //hadoop: List[Hadoop] = List(Hadoop@483f6d77)
  val hadoop = new Hadoop :: Nil

  //big_Data: List[Big_Data] = List(Spark@f58853c, Hadoop@483f6d77)
  val big_Data = new Spark :: hadoop
  //等同于这样写
  val big_data1 = hadoop.::(new Spark)
}

0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:325927次
    • 积分:3969
    • 等级:
    • 排名:第8190名
    • 原创:174篇
    • 转载:44篇
    • 译文:0篇
    • 评论:39条
    文章分类
    最新评论