大数据之scala高级语法学习

协变

案例一:

   class Animal {}
    class Bird extends Animal {}
    class Animal {}
    class Bird extends Animal {}
    //协变
    class Covariant[T](t:T){}
    val cov = new Covariant[Bird](new Bird)
    val cov2:Covariant[Animal] = cov

c不能赋值给c2,因为Covariant定义成不变类型。

稍微改一下:

  class Animal {}
    class Bird extends Animal {}
    class Animal {}
    class Bird extends Animal {}
    //协变
    class Covariant[+T](t:T){}
    val cov = new Covariant[Bird](new Bird)
    val cov2:Covariant[Animal] = cov

因为Consumer定义成协变类型的,所以Covariant[Bird]是Covariant[Animal]的子类型,所以它可以被赋值给c2。

Scala的逆变:

    class Animal {}
    class Bird extends Animal {}
    class Contravariant[-T](t: T) {
    }
    val c: Contravariant[Animal] = new Contravariant[Animal](new Animal)
    val c2: Contravariant[Bird] = c

这里Consumer[-T]定义成逆变类型,所以Contravariant[Animal]被看作Contravariant[Animal]的子类型,故c可以被赋值给c2。

时间: 2024-10-13 00:46:41

大数据之scala高级语法学习的相关文章

大数据新手的0基础学习路线,从菜鸟到高手的成长之路

大数据作为一个新兴的热门行业,吸引了很多人,但是对于大数据新手来说,按照什么路线去学习,才能够学习好大数据,实现从大数据菜鸟到高手的转变.这是很多想要学习大数据的朋友们想要了解的. 今天我们就来和大家分享下大数据新手从0开始学习大数据,实现菜鸟到高手的转变的学习路线.希望能够帮助想要学习大数据的朋友. 如果你想要学好大数据最好加入一个好的学习环境,可以来这个Q群529867072 这样大家学习的话就比较方便,还能够共同交流和分享资料 以下是大数据新手学习路线的正文: Linux:因为大数据相关软

IT大数据服务管理高级课程

IT大数据服务管理高级课程(IT服务,大数据,云计算,智能城市) 适合人群:初级 课时数量:6课时 用到技术:大数据,云计算 涉及项目:IT服务,大数据,云计算 咨询qq:1840215592 北风推荐: 资深的讲师背景,深厚的理论基础,本套课程特别适合教学课题研究与IT类的论文写作参考. 个人简历 金石先生是马克思主义中国化的研究学者,上海财经大学经济学和管理学硕士,中国民主建国会成员,中国特色社会主义人文科技管理哲学的理论奠基人之一.金石先生博学多才,对问题有独到见解.专于工作且乐于助人,在

Swift高级语法学习总结(转)

Swift高级语法学习总结 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名和内部参数名相同则可以直接在内部参数名前加#即可 1.4 如果跟参数设置一个默认值,则swift会

好程序员大数据教程Scala系列之样例类_Option_偏函数

好程序员大数据教程Scala系列之样例类_Option_偏函数,在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None).Some包装了某个值,None表示没有值. object?OptionDemo {??def?main(args: Array[String]) {????val?map = Map("a"?-> 1, "b"?-> 2)????val?v = map.get("b&q

【福利】送Spark大数据平台 + Scala语言入门视频

没有套路真的是送!! 大家都知道,大数据行业spark很重要,而学spark又必须得会scala,贴心的大叔给你找了份spark+scala的资料. 一个好的程序猿的基本素养是学习能力和自驱力.视频给了你们,能不能坚持下来学习,就只能靠自己了,另外大叔每周会不定期更新<每日五分钟搞定大数据>原创系列,感谢关注. 注意:资料仅供个人学习使用,不可外传,不可用作任何商业用途,谢谢 视频内容: Spark Spark部署 Spark编程模型(1) Spark运行架构(1) Spark SQL原理和实

0基础学习大数据你需要了解的学习路线和方向

现在大数据这么火,各行各业想转行大数据,那么问题来了,该往哪方面发展,哪方面最适合自己? 首先从字面来了解一下大数据 大数据 (巨量数据集合(IT行业术语)) 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 大数据的5V特点(IBM提出):Volume(大量).Velocity(高速).Variety(多样).Value(低价值密度).Veracit

GIS-&quot;地理空间大数据与AI的碰撞&quot;学习笔记

1.关系 人工智能>机器学习>神经网络>深度学习 2.机器学习-两个过程 训练/学习过程:样本数据.学习器.模型参数 测试/预测过程:预测强.预测值 3.神经网络 机器学习模拟人脑神经元构成神经网络学习算法 数百亿的神经元,链接构成神经网络,受制于数据量和计算能力 得益于大数据.云计算的发展和普及 4.深度学习 极其复杂的模型.自动提取特征.海量/全样本.GPU加速 传统机器学习依赖数据特征工程.人工规则 5.人工智能应用领域 语音识别:Siri.小啦.小冰.智能音响........ 图

大数据Hadoop核心知识入门学习注意事项

今天来介绍新手学习hadoop的入门注意事项.这篇文章一来谈谈hadoop核心知识学习. 首先hadoop分为hadoop1.X和hadoop2.X,并且还有hadoop生态系统,那么下面我们以hadoop2.x为例进行详细介绍: Hadoop的核心是mapreduce和hdfs. Mapreduce:mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduce程序,但是还是摸不着头脑.我们都知道mapreduce是一种编程模型,那么它能干什么,对我有什么用

想入坑大数据?必须要规划学习路线

? ? ? ? 干货走起,闲话不多说,以下就是小编整理的大数据学习思路 第一阶段:linux系统 本阶段为大数据学习入门基础课程,帮大家进入大数据领取打好Linux基础,以便更好的学习Hadoop.habse.NoSQL.saprk.storm等众多技术要点. 另:目前企业中无疑例外是使用Linux来搭建或部署项目的第二阶段:大型网站高并发处理 本阶段的学习是为了让大家能够了解大数据的源头,数据从而而来,继而更好的了解大数据.通过学习处理大型网站高并发问题反向的更加深入的学习Linux,同事站在