3
定義類型我怎樣才能解決這個代碼:斯卡拉從多個通用特質
trait A[A,B]{
def f(a:A):B
}
trait B[A,B]{
def g(a:A):B
}
type C = A[String,Int] with B[String,Double]
//works fine
new A[String,Int] with B[String,Double] {
def f(a:String):Int = 1
def g(a:String):Double = 2.0
}
//error
new C {
def f(a:String):Int = 1
def g(a:String):Double = 2.0
}
我得到的例外是:
Error:(41, 6) class type required but A$A42.this.A[String,Int] with A$A42.this.B[String,Double] found
new C {
^
不知道如何解決,什麼是其中的原因?
最簡單的解決方案將是,以限定'C'作爲性狀而不是一個類型別名:'性狀Ç延伸的[字符串,INT]與B [字符串,雙]'。 –
我知道我可以做到這一點。但我對它爲什麼會感興趣 –
這裏的通用部分是紅色的鯡魚,你會看到'特質A'和'特質B'的相同結果。 –