2013-10-22 15 views
5

Voglio solo un modo rapido per creare un vettore (o vettore) di doppi che non viene visualizzato come tipo NumericRange. Ive ha provatoMatrice di doppi in scala

val ys = Array(9. to 1. by -1.)

Ma questo tipo ritorna Array[scala.collection.immutable.NumericRange[Double]]

C'è un modo per costringere questo per regolare tipo Array[Double]?

risposta

9
scala> (9d to 1d by -1d).toArray 
res0: Array[Double] = Array(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0) 
+3

A proposito, per gli interi c'è anche (9, 1, -1) metodo 'Array.range. –

+0

Due problemi: restituisce una matrice [Int] invece di matrice [Double] e il limite finale è esclusivo. Dovresti usare 'Array.range (9, 0, -1)' –

1

Penso che sia un po 'più conciso e leggibile:

Array(9d to 1 by -1 : _*) 
res0: Array[Double] = Array(9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0)