0
您好我想創建一個參數化特徵trait Foo[T] // Foo[T]???
使得在:Scala參數化特徵類型 - 默認爲mixin超類型?
class Bar extends Foo
或
val b = new Bar() with Foo
「T」就會自動將「酒吧」,因爲這是鍵入它被混入到。不知道我會怎麼做。
您好我想創建一個參數化特徵trait Foo[T] // Foo[T]???
使得在:Scala參數化特徵類型 - 默認爲mixin超類型?
class Bar extends Foo
或
val b = new Bar() with Foo
「T」就會自動將「酒吧」,因爲這是鍵入它被混入到。不知道我會怎麼做。
從我已瞭解你的問題,我想說不要讓Foo
參數,只是使用this.type
在那裏你會在Foo
類已經使用T
。有關使用示例,請參閱How to use Scala's this typing, abstract types, etc. to implement a Self type?。
不過,我必須補充說,在實踐中往往更實際硬着頭皮僅僅是明確的:
class Bar extends Foo[Bar]
這種模式甚至有一個名字:奇異遞歸模板模式(大多來自C++文學)。 參見define method to return type of class extending it爲一個例子,階
良好,關於什麼: 性狀的Foo { VAL東西:序號[這就需要將whatver Foo類型中混合以] } –