2015-10-22 41 views
1

假設我有一個代碼:如何在Scala中重寫類型成員函數?

class C extends A#B { 
    override def fun(): Int = 100 
} 

trait A { 
    type B = { 
    def fun(): Int 
    } 
} 

編譯器說:

class type required but Object{def fun(): Int} found 
    class C extends A#B { 
        ^

我怎麼能理解錯誤?

回答

3

您不能在Scala中擴展結構類型。結構類型僅表示一組類型必須定義的方法,以便在預期結構類型的地方使用。

因此,它足以寫

class C { 
    def fun(): Int = 100 
} 

C類型的對象傳遞到的B變量。

相關問題