`
mayi_hetu
  • 浏览: 14538 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

scala的类型线性化算法

阅读更多

1、当前实例的具体类型会被放到线性化队列的首个元素位置处

2、按照该实例的父类型的顺序从右到左的放置节点,针对每个父类型执行线性化算法,并将执行结果合并

3、按照从左到右的顺序,对类型节点进行检查,如果类型节点在该节点右边出现过,那么便将该类型移除

4、在类型线性化层次结构末尾处添加AnyRef和Any类型

如果是价值类,使用AnyVal类型替代AnyRef类型

 

例如

C1

T1 extends C1

T2 extends C1

T3 extends C1

C2 extends T2

 

C3 extends C2 with T1 with T2 with T3

线性化过程:

1、添加当前实例类型

C3

2、添加T3的线性化列表

C3,T3,C1

3、添加T2的线性化列表

C3,T3,C1,T2,C1

4、添加T1的线性化列表

C3,T3,C1,T2,C1,T1,C1

5、添加C2的线性化列表

C3,T3,C1,T2,C1,T1,C1,C2,T2,C1

6、移除所有重复的C1元素,保留最后一个

C3,T3,T2,T1,C2,T2,C1

7、移除所有重复的T2元素,保留最后一个

C3,T3,T1,C2,T2,C1

8、添加AnyRef和Any类型

C3,T3,T1,C2,T2,C1,AnyRef,Any

分享到:
评论

相关推荐

    Scala程序设计(第2版)

    11.7 对象层次结构的线性化算法 282 11.8 本章回顾与下一章提要 287 第12章 Scala集合库 288 12.1 通用、可变、不可变、并发以及并行集合 288 12.1.1 scala.collection包 289 12.1.2 collection....

    SparkML算法详解(关于DataFrame的API操作)--机器学习(Scala与Java版)

    Spark的机器学习(ML)库提供了许多分布式ML算法。...特征化:特征提取,转换,降维和选择 管道:用于构建,评估和调整ML管道的工具 持久性:保存和加载算法,模型和管道 实用程序:线性代数,统计,数据处理等。

    slonic:Scala 中的机器学习算法

    Scala 中的机器学习算法用于教育目的。 到目前为止完成 线性回归 封闭式解决方案 梯度下降(矢量化解决方案) 梯度下降(非矢量化解决方案) 随机梯度下降 逻辑回归 感知器 多层感知器 (MLP) 去做: 循环神经网络...

    二维遗传算法matlab代码-Machine-Learning:机器学习

    数学线性代数,统计分布,假设检验,随机数生成器,排序,特殊函数,各种核,距离和rbf函数。 数据解析器,用于arff,libsvm,定界文本,稀疏矩阵,微阵列基因表达数据。 图在邻接表和矩阵上的图算法。 插值一维和二...

    Scala-for-Machine-Learning-Second-Edition:Packt出版的《面向机器学习的Scala-第二版》

    此外,它涵盖了判别算法,例如线性,带正则化的逻辑回归,核化,支持向量机,神经网络和深度学习。 您将继续进行进化计算,多带算法和强化学习。 最后,这本书包括对Scala和Akka中的并行计算的全面概述,然后介绍...

    二维遗传算法matlab代码-test:测试

    数学线性代数,统计分布,假设检验,随机数生成器,排序,特殊函数,各种核,距离和rbf函数。 数据解析器,用于arff,libsvm,定界文本,稀疏矩阵,微阵列基因表达数据。 图在邻接表和矩阵上的图算法。 插值一维和二...

    数据挖掘与数据分析.pdf

    矩阵论:线性代数中对数据挖掘最有⽤的部分,还有⼀些线性空间相关知识也很重要。 信息论:将信息和数学紧密连接在⼀起并完美的表达的桥梁,需要掌握信息熵、信息增益等相关知识。 统计学:数据分析最早的依赖基础...

    matlab做TSNE的详细代码-smile-clone:微笑克隆

    Smile(统计机器智能和学习引擎)是Java和Scala中快速而全面的机器学习,NLP,线性代数,图形,插值和可视化系统。 凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile涵盖了机器学习的各个方面,包括分类...

    matlab做TSNE的详细代码-smile:微笑

    Smile(统计机器智能和学习引擎)是Java和Scala中快速而全面的机器学习,NLP,线性代数,图形,插值和可视化系统。 凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile涵盖了机器学习的各个方面,包括分类...

    matlab做TSNE的详细代码-MachineLearning:机器学习

    Smile(统计机器智能和学习引擎)是Java和Scala中快速而全面的机器学习,NLP,线性代数,图形,插值和可视化系统。 凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile涵盖了机器学习的各个方面,包括分类...

    matlab做TSNE的详细代码-smile-bot-test:微笑机器人测试

    Smile(统计机器智能和学习引擎)是Java和Scala中快速而全面的机器学习,NLP,线性代数,图形,插值和可视化系统。 凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile涵盖了机器学习的各个方面,包括分类...

    coursera-machine-learning

    Coursera 机器学习课程中提出的一些算法的实现: 算法实现使用梯度下降的一个变量的线性回归 - 在 singlevar/GradientDescentCalculatorSingleVarTest.scala 中检查它使用梯度下降的多变量线性回归(使用特征归一化) ...

    matlab电路图代码表述-Cateno:计算类别理论和应用系统

    它还处理具体类别,并且可以用作类型化的数字线性代数系统。 使用分类接口实现算法:告诉Cateno如何实现对象,形态学和结构图,并且您可以访问快速算法以用于标准形式,推理,树分解,压缩,边缘化等。 这样可以快速...

    matlab做TSNE的详细代码-smile_1.5.0_java7:统计机器智能与学习引擎

    Smile(统计机器智能和学习引擎)是Java和Scala中快速而全面的机器学习,NLP,线性代数,图形,插值和可视化系统。 凭借先进的数据结构和算法,Smile可提供最先进的性能。 Smile涵盖了机器学习的各个方面,包括分类...

    ruining-the-coding-interview:破坏编码面试

    我提出了在Scala由湾这个项目在8月15日,2015年你可以看我的演讲的视频,或阅读我的幻灯片。 当我为我当前的工作进行面试时,我花了很多时间来学习不同的数据结构和算法,以及何时需要彼此使用。 你知道的,标准的...

Global site tag (gtag.js) - Google Analytics