【问题标题】:Multiple Trait construction error in ScalaScala中的多重特征构造错误
【发布时间】:2012-07-10 23:18:07
【问题描述】:

有人可以帮我理解这里的错误吗?我想我理解 Scala 中具有特征的匿名类构造。但是,当我尝试应用多个特征时,我收到一个错误,期望“;”或语句的基本结束。如果我也以这种方式声明一个类,同样的问题似乎也适用(具有多个需要匿名实现代码行的特征?行测试 3 在下面失败。谢谢。

class TestTraits 

trait A {def x:Int}
trait B {def y:Int}



object TestTraits {

  def main(args: Array[String]): Unit = {

     val test1 = new TestTraits with A {def x=22}  //OK

     val test2 = new TestTraits with B {def y=33} //OK

     val test3 = new TestTraits with A {def x=22} with B {def y=33} //Errors: - ';' expected but 'with' 


  }  
}

【问题讨论】:

    标签: scala anonymous-class


    【解决方案1】:

    您的语法无效:

    val test3 = new TestTraits with A with B {def x=22; def y=33} 
    

    一个类定义只能有一个body,而你声明的是一个匿名类。

    【讨论】:

    • 非常感谢我将这种语法与构造函数参数混淆了(每个参数在名称旁边都有自己的参数)!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2011-05-26
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多