2010-03-25 9 views
16

¿Cómo puedo crear rápidamente un List[Int] que tenga de 1 a 100 en él?Scala create List [Int]

me trataron List(0 to 100), pero vuelve List[Range.Inclusive]

Gracias

Respuesta

36

Trate

(0 to 100).toList 

El código que ha intentado es crear una lista con un solo elemento - la gama. También podría ser capaz de hacer

List(0 to 100:_*) 

Editar

La llamada List(...) toma un número variable de parámetros (xs: A*). A diferencia de varargs en Java, incluso si pasa un Seq como parámetro (un Range es un Seq), aún lo tratará como el primer elemento en el parámetro varargs. El :_* dice "tratar este parámetro como todos los varargs Seq, no solo el primer elemento".

Si lee : A* como "un (:) 'A' (A) repetida (*)", se puede pensar en :_* como "como (:) 'algo' (_) repetida (*)"

+0

Gracias, ¿qué hace: _ * do en List (0 a 100: _ *)? – portoalet

+0

Hmm. Esto devuelve el tipo 'List [scala.collection.immutable.Range.Inclusive]' para mí. @Eastsun parece devolver el tipo correcto. – cevaris

12
List.range(0,101) 
+0

List.range (1,101) –