码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-19 08:15:00      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:scala   编程   


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中的上界下界以及逆变、协变

标签:scala   编程   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!