您的位置:首页 > 编程语言

Scala深入浅出进阶经典 第52讲:Scala中路径依赖代码实战详解

2015-09-25 23:13 375 查看
package com.dt.scalaInAction.demo_052

/**
* Scala中路径依赖代码实战详解
*/
class Outer {
private val x = 10
class Inner {
private val y = x + 10
}
}

object Path_Dependence {
def main(args: Array[String]): Unit = {
val outer = new Outer
val iner = new outer.Inner  //val iner: outer.Inner
/**
* Scala中的内部类 必须依赖于外部类的实例 而外部类的实例各不相同 所以被之为这种对于外部类的依赖为"路径依赖"
* 所以不同的路劲代表不同的类型
*/
val inner2: outer.Inner = new outer.Inner

val o1 = new Outer
val o2 = new Outer

//val i: o2.Inner = new o1.Inner  //error
//这说明o2.Inner 和 o1.Inner不是同一个类型 根本原因是因为o1和o2类型不用 导致"路径"不同

//这说明o1.Inner是Outer#Inner的子类 这种方式称之为"类型投影" 在实战中作用不大
val i: Outer#Inner = new o1.Inner
val j: Outer#Inner = new o2.Inner //说明o1.Inner和o2.Inner都有共同的子类Outer#Inner
}
}


以上内容是从王家林老师DT大数据课程第52讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859

第52讲视频网站地址:http://pan.baidu.com/s/1gdES4hX
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: