52.Scala中路径依赖代码实战详解
来源:互联网 发布:sql数据库开发 编辑:程序博客网 时间:2024/04/29 13:45
class Outer{ //外部类 ,外部类不能访问内部类private级别的成员 private val x = 10 class Inner{ private val y = x + 10 //但是内部类可以访问外部类的私有成员。因为内部类隐含地持有外部类的实例。 }}object Path_Dependence_52 { def main(args: Array[String]): Unit = { val outer = new Outer //inner或者inner2依赖于outer。outer是它的路径,在scala中,不同的路径代表了不同的类型。我们称之为对外部类的依赖为路径依赖类型(Path Dependence Type) val inner = new outer.Inner val inner2 : outer.Inner = new outer.Inner //在Java中,所有的内部类是同一个类型,但是在scala中,scala的内部类必须依赖于Outer val o1 = new Outer val o2 = new Outer val i : Outer#Inner = new o1.Inner //o1.Inner是Outer#Inner的子类。外部类#内部类:类型投影(不同外部类实例,但内部类是同一类型)。 //虽有路径依赖,但还想用Java风格就用这种表达方式。 //val i : o2.Inner = new o1.Inner //报错。type mismatch,found:o1.Inner,required:o2.Inner.生动地说明了o1.Inner和o2.Inner不是同样一个类型。 //因为路径依赖中o1和o2不是同样一个对象,导致路径不一样。 }}
例如:
有2个社交网络,facebook和twitter,有很多会员,是依赖于各自网络的。
就算是同一个人在这两个不同的社交网络里,也是不同的实例。
spark编程中,数据是分布式的,会分成很多的片,不同分片的数据从理论上讲是一样的(当然数据内容不同),也就是说,属于同样类型的数据,但是我们写代码时,处理数据时,还是处理属于每一个blog或split分片的结果。从这个角度看,也可看作是路径依赖。
参考资料来源于大数据梦工厂 深入浅出scala 第52讲 由王家林老师讲解
阅读全文
0 0
- 52.Scala中路径依赖代码实战详解
- Scala深入浅出进阶经典 第52讲:Scala中路径依赖代码实战详解
- 第52讲:Scala中路径依赖代码实战详解学习笔记
- Scala深入浅出实战经典:25,Scala中Curring实战详解
- 63.Scala中隐式类代码实战详解
- 64.Scala中隐式对象代码实战详解
- 24.Scala中SAM转换实战详解
- 25.Scala中Curring实战详解
- Scala中package与import实战详解
- 53.Scala中结构类型实战详解
- 54.Scala中复合类型实战详解
- 55.Scala中Infix Type实战详解
- 56.Scala中Self Types实战详解
- 57.Scala中Dependency Injection实战详解
- 58.Scala中Abstract Types实战详解
- scala学习之:scala的self Types与依赖注入的代码实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第14讲 Scala中作为接口的trait、在对象中混入trait代码实战
- scala进阶10-路径依赖
- 挑战程序竞赛系列(90):3.6凸包(1)
- 一次线上故障问题定位和解决
- 如何对二维数组进行排序
- Mybatis 延迟加载详解
- java统计list不同元素,满足n个返回
- 52.Scala中路径依赖代码实战详解
- 二叉树的路径和-LintCode
- PHP创建迅雷、快车、旋风链接
- Hrbust 2319 Number Game【思维+优先队列】
- node csv文件流读取
- iOS Podfile文件常用库
- 53.Scala中结构类型实战详解
- Codeforces 730 C Bulmart [bfs+贪心]
- Hibernate 配置 MySQL dialect 解决由MySQL版本导致的问题