2011-08-08 22 views
5

私が理解しているように、scala stdlibからマップを宣言してもプリミティブ型に特化しているわけではありません。私が探しているのは、ボクシング/アンボクシングの価格を支払うのではなく、同時にスカラーマップのインターフェースを持つことです。わかりやすい選択肢は、目的地マップを使用することですが、私はスカラビューがあるとは思わないのです。どんな助けもありがたい。プリミティブ型のスカラマップ値型

+0

キーや値にプリミティブ型が必要ですか?異なる実装... – PhiLho

+0

値については。両方の解決策を知ることは本当にうれしいですが。 – venechka

答えて

4

これは、インターフェイスが特化されていないため、現在不可能です。これは、コレクション自体で何をしているかにかかわらず、値をボックス化してインターフェイスを介して取得することを意味します。

現時点で特に満足できるオプションはありません。利便性がパフォーマンスよりも重要な場合には、Troveを使用してScalaコレクションへの暗黙的な変換を行ってください。

(私はこの状況を自分自身で解決しようとしており、コンパイラの特殊化サポートの現状を考えると容易ではないことを証明することができる;現存するライブラリを特化することは現実的ではなく、うまくいけば、将来のバージョンではここで改善されることが期待されますが、これはあまり役に立ちません。)

+0

あなたの答えをありがとう。コレクションを専門にしようとする際に直面した主な難点は何ですか?あなたが報告したいくつかの特殊化バグ(https://issues.scala-lang.org/secure/ViewProfile.jspa?name=ichoran)がありますが、Scalaチームのために優先順位を付けるべきかどうか疑問に思っていましたか? –

+0

@Kipton Barros - これらのバグや、私が私のことを報告する前にリストされていたバグは、問題を引き起こしました。また、コードサイズの爆発が心配です。そして、タイプの組み合わせの中には有益なものもあるが、他のタイプの組み合わせははるかに価値が低いが、それらを選択する方法はないという問題がある(例えば、3つのタイプがある場合、2つのIntsのすべての組み合わせを1つLong 3つの可能性がありますが、現在すべてを専門化する必要があります8)。 –

関連する問題