タプルフォームを使用すると、例えば、Iterable
インターフェイスで作業しているようです。しかし、Map
型のコンストラクタは2つの型引数をとり、Iterable
は1つしか取らない(2タプル)。Map [K、V]の代わりにMap([K、V])を使用してMapコンストラクタを作成するにはどうすればよいですか?
つまり、私はtype Map[(+A, +B)] = Map[A, B]
のようなことをしたいと思いますが、これは無効なScalaコードです。そして、私が言うことができる:
type MapItem = (K,V)
type MyMap = Map[MapItem]
を私が現在持っている例のユースケースは、次のように私は関数が定義されているということです。
def requestDecodeIterable[B, I[X] <: Iterable[X]](reqRx: Rx[HttpRequest])
(implicit stuff ...): Rx[I[B]] = ...
私はこのようにそれを呼び出すことができるようにしたい:
type CodebookNameItem = (CodebookId, CodebookName)
type CodebookNameCollection[+A, +B] = Map[A, B]
requestDecodeIterable[CodebookNameItem, CodebookNameCollection](request)
CodebookNameCollection
は2つのタイプパラメータを取りますが、I
は1つのタイプパラメータしか取らないため、これはもちろん機能しません。
これは役に立ちそうな状況を表示できますか? –
@IonuţG.Stan - 確かに、私は私の質問を更新しました。 – bbarker