加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala:在扩展类时预初始化val

发布时间:2020-12-16 10:04:01 所属栏目:安全 来源:网络整理
导读:如何预先初始化val并在 Scala中扩展类? 例如.: object Start { def main(args: Array[String]): Unit = { new T() new T2() //T3? }}class T extends{val z = 10} with X with Yclass T2 extends X with Y {val z=10}//class T3 extends{val z = 10} ??? Z
如何预先初始化val并在 Scala中扩展类?

例如.:

object Start {
  def main(args: Array[String]): Unit = {
        new T()
        new T2()
        //T3?
  }
}

class T extends{val z = 10} with X  with Y
class T2 extends X with Y {val z=10}
//class T3 extends{val z = 10}  ??? Z with X with Y //????

class Z

trait  X {
  val z :Int
}

trait Y { this :X =>
  println("Test: "+z)  
}

解决方法

使用:

class T3 extends {val z = 10} with Z with X with Y

Scala语言规范2.9,5.1.6:

EarlyDefs ::= ‘{’ [EarlyDef {semi EarlyDef}] ‘}’ ‘with’

所以早期的定义总是必须跟着一个

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读