第52讲:Scala中路径依赖代码实战详解学习笔记

52讲:Scala中路径依赖代码实战详解学习笔记

本期内容:

1.scala的内部类实现代码实战

2.scala路径依赖代码实战用

 

路径依赖不易理解,要从内部类谈起.例:

class Outer {  //外部类

  private val x = 10

  calss Inner {  //Inner是内部类

    private val y = x + 10

  }

}

/*内部类可以访问外部类的私有成员,

原因是内部类隐含地持有外部类的实例。

因为拥有外部类的实例所以可以访问。

外部类不能访问内部类的私有成员。

*/

object Path_Dependence {

  def main(args: Array[String]){

    val outer = new Outer

    val inner = new outer.Inner    //构建内部类的实例。

    //java中是outer.(new Inner) 这与scala差别很大

//java中的所有内部类是同一个类型,scala中的内部类必须依赖于外部类的实例。

外部类的不同的实例是不同的。称内部类对外部类的依赖为路径依赖类型。

outer就是路径。scala中不同的路径代表不同的类型。

 

    val inner2: outer.Inner = new outer.Inner

 

    val o1 = new Outer

    val o2 = new Outer

  }

}

    //val i: o2.Inner = new O1.Inner这样会报错,因为o1o2是不同的对象所以路径不同,类型就不同。

例如图书馆中有很多书,书是依赖于图书馆的具体实例。

twiterfacebook中的两个同名会员,因为是不同网站所以是不同类型。

 

scala中外部类中有内部类时加#,例如:

//val i: o2.#Inner = new O1.Inner报错

//val i: Outer#Inner = new o1.Inner  这样就OK了。

说明o1.InnerOuter的子类。

意义:scala提供了路径依赖,编程时可能需要用java风格的外部类和内部类是同一个类型。

 

spark编程中分布式数据分成多片。属于同类型的数据。

 

本讲在spark编程中直接使用的不多。

 

 

以上内容是从王家林老师DT大数据课程第52讲的学习笔记。
DT大数据微信公众账号:DT_Spark  

王家林老师QQ:1740415547 

王家林老师微信号:18610086859
百度网盘共享的DT大数据梦工厂王家林老师第1-91讲的视频内容:

http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group

52讲酷6视频网址:http://v.ku6.com/show/wRTgiSXw-WOD3bhUnGJy8w...html

51CTO视频网址:http://edu.51cto.com/lesson/id-68118.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值