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

原创 2016年08月30日 00:20:51
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)
}

scala协变逆变上界下界---理解篇

如果你对面向对象的泛型bt
  • u014388509
  • u014388509
  • 2014年04月30日 12:02
  • 7103

Scala协变逆变上界下界

这里介绍一下关于scala中的协变逆变的有关知识,因为真的每次碰见都懵逼的感觉很难受。此处我不会对比Java中的相关协变逆变,只针对scala的进行讲解。 首先我说一下协变,所谓协变,白话文就是说让你...
  • qq_23660243
  • qq_23660243
  • 2016年08月04日 10:33
  • 492

scala 中协变与逆变

到上次为止由羽生田先生介绍了Scala语法的特点,这一讲我作为嘉宾来介绍一下Scala的类型系统和相关功能。本次介绍的重点是Java与 Scala之间类层次的差异、范型的协变与逆变、实存类型(Exis...
  • pzw_0612
  • pzw_0612
  • 2015年08月09日 16:57
  • 1351

Scala之“逆变”合理性的思考

Scala之“逆变”合理性的思考对于逆变的概念可以参考本系列的前一篇文章: Scala之类型参数化:Type Parameterization 本文的重点是要解释“逆变”的合理性。在思考“逆变”的合理...
  • bluishglc
  • bluishglc
  • 2016年09月19日 15:07
  • 1945

scala的协变和逆变分析

首先引用朋友的文章 http://freewind.me/blog/20140502/2613.html d
  • daaoke
  • daaoke
  • 2014年05月02日 21:09
  • 4004

scala 协变和逆变 在函数上的应用

协变的 covariant;逆变的 contravariant C是AnyRef类。函数的协变和逆变
  • iamiman
  • iamiman
  • 2017年02月16日 09:50
  • 473

scala中的上界、下界、协变和逆变

class Pet(val name:String){ override def toString()=name } class Dog(override val name:String) exten...
  • u013360022
  • u013360022
  • 2016年03月17日 16:07
  • 978

协变,逆变,上界,下界

定义:逆变和协变用来描述类型转换后的继承关系。 我们用F(X)来表示类型转换,X,Y代表类型,≤代表继承关系(如X ≤ Y表示A是B的子类)协变:已知X ≤ Y,且F(X) ≤ F(Y)。 逆变:...
  • sinat_27976951
  • sinat_27976951
  • 2017年10月15日 22:15
  • 71

Scala入门到精通——第二十一节 类型参数(三)-协变与逆变

本节主要内容 协变 逆变 类型通匹符 1. 协变 协变定义形式如:trait List[+T] {} 。当类型S是类型A的子类型时,则List[S]也可以认为是List[A}的子类型,即List[...
  • lovehuangjiaju
  • lovehuangjiaju
  • 2015年08月09日 16:14
  • 10868

scala的协变逆变,上界下界

对于一个带类型参数的类型,比如 List[T],如果对A及其子类型B,满足 List[B]也符合 List[A]的子类型,那么就称为covariance(协变),如果 List[A]是 List[B]...
  • lcg910978041
  • lcg910978041
  • 2016年11月11日 23:05
  • 149
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Scala进阶27-List中的上界、下界、逆变、协变
举报原因:
原因补充:

(最多只允许输入30个字)