トレイトの型パラメータを異なる型のセットに制限するにはどうすればよいですか (たとえば、ユニオン型によってバインドされます)?
具体例として、 must orの特性IntegralIndex[T]
を作成したいと思います。T
Int
Long
ユニオン型に関するこの質問に対する最初の回答を試しました:
sealed abstract class NumericIndex[T]
object NumericIndex {
implicit object IntWitness extends NumericIndex[Int]
implicit object LongWitness extends NumericIndex[Long]
}
trait IntegralIndex[T : NumericIndex]
しかし、それはうまくいきません。私は得るtraits cannot have type parameters with context bounds `: ...' nor view bounds `<% ...'
他の提案はありますか?確かに、私はユニオン型に関する質問に対する他の解決策を理解していませんでした。そのため、答えがそこで別の答えを使用することであるか、それともそれができないことを知っているかをいただければ幸いです。