4
A
答えて
2
これはあなたのニーズに合っていませんか?
class A[T](ts: Seq[T])
6
クラスのメンバーは、コンストラクタのパラメータ宣言の対象外です。
これはあなたが得ることができる限り近い:
scala> trait T { type T; val a: T }
defined trait T
scala> def A[X](x: X) = new T { type T = X; val a = x }
A: [X](x: X)Object with T{type T = X}
scala> A[Int](0)
res0: Object with T{type T = Int} = [email protected]
scala> A[String](0)
<console>:10: error: type mismatch;
found : Int(0)
required: String
A[String](0)
^
scala> class AA[X](val a: X) extends T { type T = X }
defined class AA
scala> new AA[Int](0)
res5: AA[Int] = [email protected]
scala> new AA[String](0)
<console>:10: error: type mismatch;
found : Int(0)
required: String
new AA[String](0)
^
+0
私はこのタイプの理論についてはわかりません。これがどのようにOPの目標を達成するかについてもっと詳しく説明できますか? –
+2
彼は型メンバーと同じ型のコンストラクタ引数を持つことを望んでいました。クラス「AA」はそれにかなり近いです。 – retronym
+0
説明してくれてありがとう、クラス 'AA'は本当に面白いです! –
関連する問題
- 1. スカラ、抽象的な抽象型の型にアクセスする
- 2. スカラにオブジェクトを持つ抽象型
- 3. スカラ抽象クラス
- 4. 抽象型との型のvalメンバーのスカラの比較
- 5. スカラのコード抽象化
- 6. 抽象型のスカラ配列を使用する
- 7. `this.type`でパラメータ化されたスカラ抽象型
- 8. スカラ拡張パラメータ付き抽象クラス
- 9. スカラ抽象クラス関数呼び出し
- 10. スカラ抽象クラスからJavaへ
- 11. ツリー抽象データ型
- 12. 抽象クラスへの型キャスト?
- 13. スカラクラスのコンストラクタと抽象型
- 14. 抽象型との型の不一致
- 15. C++抽象型宣言
- 16. セルフ型では抽象型を修正
- 17. スカラ:抽象クラスのコンパニオンオブジェクトのメンバーを要求することは
- 18. C++抽象型の初期化
- 19. 単純な抽象データ型のリンクリストに
- 20. ジェネリックストリームと抽象データ型のここ
- 21. 抽象スーパークラス用のMatlab OOP型チェック
- 22. Webサービス定義(wsdl)の抽象型
- 23. スカラ、非常によく似たタイプの抽象ロジック
- 24. 抽象的なリモートアクターとパターンマッチング(クラスローディング?)をスカラで拡張する
- 25. スカラ:抽象ジェネリックスーパークラスをサブクラス化できません
- 26. スカラ:抽象基底クラスを持つTrait Mixin
- 27. オブジェクトは抽象クラスをスカラで拡張できますか?
- 28. 抽象クラス対抽象クラス
- 29. Java抽象クラス、抽象コンストラクタ
- 30. 抽象クラスと抽象メソッド
それは私から離れて移動しようとしていますものです。これは私の現在の実装がどのように動作するかを示していますが、パラメータ化された型はたくさんのジェネリックインスタンス(たとえばList [String]、List [Int]、List [NyanCat] TV(NTSC)、TV(PAL)、TV(Digital)などのユースケースが10以下のものではなく、 – duckworthd