可以像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循环,如何处理?
答案 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。
与使用整数范围不同,无法知道范围的默认步长。