2012-07-10 191 views
2

有人可以幫我理解這裏的錯誤嗎?我想我理解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' 


    } 
} 

回答

5

你的語法是無效的:。

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

類定義只能有一個和你所宣稱是匿名類。

+0

非常感謝我混淆了這句法與構造的申辯(每個名稱旁都有自己的params)! – LaloInDublin 2012-07-10 23:31:29