2013-10-30 125 views
0

我試圖讓List(0,1,2,...n)創建範圍的名單

是否有一個更清潔/更好的辦法比:

scala> List(0 to 9) 
res0: List[scala.collection.immutable.Range.Inclusive] = List(Range(0, 1, 2, 3, 4, 
                    5, 6, 7, 8, 9)) 

scala> List(0 to 9).flatten 
res1: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 

回答

8

最好的辦法可能是:

(0 to 9).toList 
6
scala> List.range(0, 10) 
res0: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 
1

另外

List(0 to 9: _*) 

我懷疑List.range是最有效的。

+0

爲什麼最高效? –

+0

因爲它不需要創建中間集合。這只是我的猜測,你需要運行一個適當的基準來看看這個差異是否顯着。 –

+0

'範圍'幾乎是免費的,只有3個數字組成,所以我懷疑會有什麼區別。我會去最可讀。 –