我想写一个可以是双精度、整数或布尔值的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'
谢谢