2011-07-26 1 views
8

One of the recent commits to Scala masterは、コンテキスト/ビュー境界を暗黙のパラメータと組み合わせる際の制限を削除します。それはボイラープレートの量を減らす大きな改善ですが、以前にその制限を行う理由は何でしたか、そして現在どのような結果が予想されますか?暗黙のパラメータとビュー/コンテキストの境界を組み合わせることを制限する理由は何ですか?

答えて

5

コンテキストとビューの境界は暗黙のパラメータを追加します。あなたが書くのであれば:代わりに一つで渡される暗黙のパラメータは、実際には、

def f[T : Manifest](l: List[T])(implicit ord: Ordering[T]) 

があります。この種の構文を許可すると、確実に混乱を招くことになります。暗黙的なパラメータの使用がタイプクラスのためにより広範囲になり始めると、上記のようなことができるようになります。

+0

"コンテキストとビューの境界が暗黙的なパラメータを追加" >>確かに、私はそれを知っています。技術的な難しさが原因であれば、私はむしろ興味がありました。 –

+0

IMO、暗黙的なパラメータとともに境界を使うことができない場合は、初心者にとっても非常に混乱するかもしれません:) –

+0

@Vasil私はそれが悪い決定であると言っているわけではなく、 。すべてのパラメータリストを正しく記入しても、f(List(1 - > 2、2 - > 1))(Ordering by(_.swap)) 'のような上記の関数を呼び出すことは不正です。 –

関連する問題