私はこの例を書いて、かなり疑問に思いました。シングルトンオブジェクト内のクラスを拡張する
class TestMatch(val i: Int)
object TestMatch extends TestMatch(10){ // <-- Here
def apply(i: Int) = new TestMatch(i)
def unapply(tm : TestMatch): Option[Int] = Some(tm.i)
}
ここで何が起こっていますか? TestMatch(10)
を延長します。 i = 10
で作成されたインスタンスfのテストマッチをどのように拡張できますか?それは私にはあまり意味がありません。またはTestMatch(val i: Int)
は、タイプのセットの代わりにのセットを定義します。 C++のテンプレートのように:
template<int i>
class TestMatch{
//...
}
私はラインオブジェクトによってconsufedた
TestMatchたちは、私が対象だと思ったTestMatch(10)
を延ばすように見えますTestMatch(10)を
拡張しますconstrucotrパラメーターi = 10
で作成したTestMatch
と入力します。もし私が書いたら
TestMatch extends TestMatch
それはコンパイルされませんでした。
あなたの質問を明確にできますか?あなたが何を説明したいのかははっきりしていません。 –