本视频由王家林老师采用代码案例实战的方式详细讲解了“Scala中List的构造是的类型约束逆变、协变、下界”。视频的知识点包括两大内容:
一,List的::和:::详解
二,List中的逆变、协变和下界
在scala的DOS编辑窗口下分别定义抽象类Big_Data和Big_Data的子类Hadoop、Spark ,代码如下:
scala> abstract class Big_Data
defined class Big_Data
scala> class Hadoop extends Big_Data
defined class Hadoop
scala> class Spark extends Big_Data
defined class Spark
然后我们分别创建Hadoop和Spark的对象实例,代码如下:
scala> val hadoop = new Hadoop :: Nil
hadoop: List[Hadoop] = List(Hadoop@131cf3a3)
scala> val big_Data = new Spark :: hadoop
big_Data: List[Big_Data] = List(Spark@638940d8, Hadoop@131cf3a3)
这里我们看到Hadoop类的实例的类型是hadoop: List[Hadoop]而Spark的类型是big_Data: List[Big_Data],这是因为List的方法::返回的是上界的类的类型,::的源代码如下:
def ::[B >: A] (x: B):List[B] = new scala.collection.immutable.::(x,this)
这里的泛型[B >: A]可以看出B是A的上界,而::方法的返回值是List[B],这就说明::方法的返回值是返回上界的类型的值。
DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接地址:
http://pan.baidu.com/share/home?uk=4013289088&view=share#category/type=0&qq-pf-to=pcqq.group