double、int、booleanのいずれかになり得るSparseVector[T]
クラスを作成したいと思います。T
クラスは配列によってサポートされません(スパースデータ構造が必要なため)が、AnyVal
型の空の配列を作成すると、要素がデフォルト値に初期化されることを確認しました。例えば:
scala> new Array[Int](10)
res0: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
scala> new Array[Boolean](10)
res1: Array[Boolean] = Array(false, false, false, false, false, false, false, false, false, false)
scala> new Array[Double](10)
res2: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
このデフォルト値をクラスに含めるにはどうすればよいですか?私が取得したい動作は次のとおりです。
val v = new SparseVector[Double](100)
println( v(12) ) // should print '0.0'
val w = new SparseVector[Boolean](100)
println( v(85) ) // should print 'false'
ありがとう