2013-04-14 24 views
5

タイプデザインに関する質問があります。なぜIntはOrdered特性を拡張しないのですか? Intは性質上命じられていないのですか?Intが継承/継承しない理由[Int]

代わりに、scalaライブラリは、IntをOrdered [Int]に変換する暗黙的な「順序付け」メソッドを提供します。ここではデザインの選択肢は何ですか? Scalaで書籍プログラミングから取ら

のInt(およびAnyValから継承されたいくつかの他のクラス)が短命であるので
def maxListImpParm[T <% Ordered[T]](elements:List[T]):T= ... 


maxListImpParm(List(1,5,10,3)) // works because of implicit methods 
+0

宣言は次のように短縮することができます: 'def maxListImpParm [T <%Ordered [T]](要素:List [T]):T = ???' –

答えて

7

- 実行時には、通常、(クラスの概念を持っていないプリミティブ値で表され、こうして継承)。もちろん、アイテムにコレクションを入れたときに、完全なブローされた参照クラスインスタンスへのIntボクシングのような例外がありますが、typeclassは1つの汎用ソリューションを提供します。さらに、タイプメスはmore flexible than inheritanceです。