for-loop with Double in Scala

时间:2013-06-22 02:43:20

标签: scala for-loop double

可以像bellow一样使用

val ls = for(i <- 1 to 5) yield i

但是无法使用此

val la:Double = 100000000000000d
val ls = for(i <- la to la + 1) yield i

因为如果元素是 Double 创建 Range.Partial [Double,scala.collection.immutable.NumericRange [Double]] 没有地图

要使用 Double 进行for循环,如何处理?

1 个答案:

答案 0 :(得分:5)

我认为您需要指定将范围从by转换为Range.Partial[Double,scala.collection.immutable.NumericRange[Double]]

的方法scala.collection.immutable.NumericRange[Double]

e.g。

for (i <- la to la + 1 by 1.0) yield i

<强>更新

scala.collection.immutable.Range.Partial课程的scala源代码中,您可以看到他们的reasoning

与使用整数范围不同,无法知道范围的默认步长。