2013-06-22 121 views
3

雙其可以使用像波紋管for循環斯卡拉

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

,但它不可能使用這種

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

因爲如果這個元素是創建Range.Partial [Double,scala.collection.immutable.NumericRange [Double]]哪些沒有地圖

要用for-loop與Double,該如何處理?

回答

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 

更新

在Scala的源代碼scala.collection.immutable.Range.Partial類,你可以看到這背後的reasoning

與使用整數範圍不同,無法知道範圍的默認步長是多少。