首页 > 其他 > 详细

Scala List中的上界下界以及逆变、协变

时间:2015-08-19 08:13:33      阅读:254      评论:0      收藏:0      [点我收藏+]


package com.dt.scala.list

abstract class Big_Data
class Hadoop extends Big_Data
class Spark extends Big_Data

object List_Constructor_Internals {
  def main(args: Array[String]): Unit = {
    val hadoop = new Hadoop :: Nil    //创建hadoop列表
    val big_data = new Spark :: hadoop   //在hadoop列表前边追加Spark,然而Spark和Hadoop本身类型不同,他们的父类类型相同
    //此时得到的新列表big_data 类型是Big_Data;
//    也可以写成:     hadoop.::(new Spark)
  }
  // :: 操作的源码定义:
//  def ::[B >: A](x: B) : List[B] = new scala.collection.immutable.::(x,this)
  //是泛型,A是以B为上界的,或者说B是以A为下界的。返回是上界B,list是协变的,函数的参数(x:B)其实是逆变的。
  //函数的参数时逆变的,就不能保持函数的返回结果类型是协变的了。使得list可以容纳具体的上界的所有子类型。
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Scala List中的上界下界以及逆变、协变

原文:http://blog.csdn.net/u013361361/article/details/47774673

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!