2013-10-22 12 views
5

タイプNumericRangeとして出てこない倍精度の配列(またはベクトル)を素早く作成したいだけです。レギュラータイプArray[Double]にこれを強制する方法はあり アイブ氏はスカラー倍の配列

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

を試してみました。しかし、これはArray[scala.collection.immutable.NumericRange[Double]]

を入力し返しますか?

答えて

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

ところでは、整数の 'Array.range(9、1、-1)'メソッドもあります。 –

+0

2つの問題:Array [Double]の代わりに[Int]を返し、最後の制限は排他的です。あなたは 'Array.range(9、0、-1)'を使うべきです。 –

1

私はそれが少しより簡潔で読みやすいと思う:

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) 
関連する問題