今天学习了scala中的路径依赖,来看一下实战代码

class Outer{
  private val x = 10
  class Inner{
    private val y = x +10
  }
}

这里定义了一个外部类Outer,Outer里定义了私有的成员x。同时定义了内部类Inner,内部类里定义了私有成员y。

在这里,内部类Inner可以访问外部类的私有成员x,而外部类不能访问内部类Inner的私有成员y。

继续看这段代码:

object test52{
  def main(args:Array[String]){
    val outer = new Outer
    val inner = new outer.Inner
    val inner2 : outer.Inner = new outer.Inner
   
    val o1 = new Outer
    val o2 = new Outer
   
//    val i : o2.Inner = new o1.Inner

首先,实例化外部类outer,inner,接着,实例化内部类inner2,在这里我们可以看到,inner2的类型为outer.Inner,说呢,同一个外部类的内部类实例的类型是相同的。

接着往下看,实例化外部类成员o1,o2,接着,让一个类型为o2.Inner的i实例化为o1.Inner的对像,这里编译器会报错,因为,o2.Inner和o1.Inner是两个不同的外部类,它们的内部类的类型也不会相同。

这就是scala中的路径依赖的作用。

分享下更多的scala资源吧:

百度云盘:http://pan.baidu.com/s/1gd7133t

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

关注微信账号,获取更多关于scala学习内容

第52讲:Scala中路径依赖代码实战详解的更多相关文章

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

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  2. Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  3. Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  4. 王家林系列之scala--第69讲:Scala并发编程react、loop代码实战详解

    刚才看了一下,群里王家林老师又更新课程了,真为王老师的勤奋感到佩服,于是迫不及待的下载下来观看学习.本期讲的是关于scala并发编程的react.loop代码实战. 信息来源于 DT大数据梦工厂微信公 ...

  5. 第45讲:Scala中Context Bounds代码实战及其在Spark中的应用源码解析

    今天学业习了上下文界定的内容,看下这段代码 class Pair_Ordering[T:Ordering](val first : T,val second : T){  def bigger(imp ...

  6. 第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析

    今天学习了view bounds的内容,来看下面的代码. //class Pair[T <: Comparable[T]](val first : T,val second : T){//  d ...

  7. 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析

    今天学习了scala的界定,先来看看下面这段代码 //class Pair[T] (val first : T,val second : T)class Pair[T <: Comparable ...

  8. 第71讲:Scala界面Panel、Layout实战详解

    今天学习了王家林老师scala讲座的第71讲,scala界面编程panel实战.让我们一起来看一下. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的 ...

  9. 第33讲:List的一阶函数操作代码实战详解

    今天来看一下关于List的一阶函数操作 让我们看下下面的代码 println(List(1,2,3,4):::List(4,5,6,7,8):::List(10,11))//列表连接    print ...

随机推荐

  1. Data import/export of Netezza using external table

    Introduction External table is a special table in Netezza system, which could be  used to import/exp ...

  2. Tomcat中间件URL中文字符传递问题

    1. 问题描述: tomcat中如果URL中需要传递中文参数,需要配置tomcat的service.xml中文传递的编码方式,否则中文传递将出现乱码,导致程序异常. 2. 解决方式: 修改tomcat ...

  3. 《Breakfast At Tiffanys》

    "生活中似乎有些男性想象着能拯救和引导一个年轻美丽纯洁善良却迷茫的女子,有些女性也想象着能用自己的善良与包容来安慰一个才华横溢却饱经苦闷与贫穷的男子,老实说,这很有成就感.虽然我的语气有些讽 ...

  4. mysql 计算日期差

    有两个途径可获得   1.利用TO_DAYS函数   select to_days(now()) - to_days('20140831')   2.利用DATEDIFF函数   select dat ...

  5. VueJS取得URL参数

    vuejs取得URL中参数的值 地址:http://localhost:3333/#/index?id=001 结果:001 console.log(this.$route.query.id)

  6. setValue和setObject的区别

    在NSMutableDictionary的方法中有setValue forKey与setObject forKey,它们都可以用来设置某一个key值对应的value 1,setValue: forKe ...

  7. Android中脱离WebView使用WebSocket实现群聊和推送功能

    WebSocket是Web2.0时代的新产物,用于弥补HTTP协议的某些不足,不过他们之间真实的关系是兄弟关系,都是对socket的进一步封装,其目前最直观的表现就是服务器推送和聊天功能.更多知识参考 ...

  8. Valid Parentheses 使用递归的解法

    class Solution { public: bool isValid(string s) { ||s.size()%!=)return false; unordered_map<char, ...

  9. VBA中常用技巧

    常量定义 Public Const i as Integer = 1 自定义类型 Type mytype i   as Integer b  as  Boolean s  as  String end ...

  10. C语言实现 二分查找数组中的Key值(递归和非递归)

    基本问题:使用二分查找的方式,对数组内的值进行匹配,如果成功,返回其下标,否则返回 -1.请使用递归和非递归两种方法说明. 非递归代码如下: #include <stdio.h> int ...