for-loop with Double in Scala

krr*_*r38 4 double for-loop scala

它可以像波纹管一样使用

val ls = for(i <- 1 to 5) yield i
Run Code Online (Sandbox Code Playgroud)

但是不可能使用它

val la:Double = 100000000000000d
val ls = for(i <- la to la + 1) yield i
Run Code Online (Sandbox Code Playgroud)

因为如果这个元素是,创建Range.Partial [双,scala.collection.immutable.NumericRange [双]不具有映射.

为了与循环使用,如何处理呢?

Sam*_*ney 5

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

例如

for (i <- la to la + 1 by 1.0) yield i
Run Code Online (Sandbox Code Playgroud)

更新

scala.collection.immutable.Range.Partial课程的scala源代码中,您可以看到它们背后的推理.

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