它可以像波纹管一样使用
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]] 没有 map 。
用for循环和Double,怎么处理?
最佳答案
我认为您需要指定将范围从 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
更新
在
scala.collection.immutable.Range.Partial
类的 scala 源代码中,您可以看到其背后的 reasoning。与使用整数范围不同,无法知道范围的默认步长是多少。
关于scala - 在 Scala 中使用 Double 进行 for 循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17246834/