2011-07-04 18 views
50
val list1 = List(1,2) 
val list2 = List(3,4) 

continuación¿Cuál es la diferencia entre :: ::: y en Scala

list1::list2 returns: 

List[Any] = List(List(1, 2), 3, 4) 

list1:::list2 returns: 

List[Int] = List(1, 2, 3, 4) 

vi el libro escribe que cuando el uso :: también resulta List[Int] = List(1, 2, 3, 4). Mi versión de Scala es 2.9.

Respuesta

62

:: antes de un solo elemento, mientras que ::: es una lista completa. Por lo tanto, si coloca List delante de ::, se toma como un elemento, lo que da como resultado una estructura anidada.

+0

Por razones de rendimiento, ¿hay diferencia entre '::' y ':::'? – null

+1

El rendimiento debería ser 'O (n)' con 'n' que es el número de elementos para anteponer. – Debilski

Cuestiones relacionadas