Digamos que tengo una secuencia de cadenas como entrada y quiero obtener un nuevo Seq
inmóvil que consta de elementos de la entrada y un elemento "c"
. Aquí hay dos métodos que he descubierto estar funcionando:Agregar un elemento a una Secuencia inmutable
assert(Seq("a", "b", "c") == Seq("a", "b") ++ Seq("c"))
- el problema con esto es que parece que crear instancias de una secuencia temporal (Seq("c")
) sólo por el bien de la operación es rendundant y resultará en overheadassert(Seq("a", "b", "c") == List("a", "b") ::: "c" :: Nil)
- este restringe el tipo de colección de entrada para que seaList
, por lo queSeq("a", "b") ::: "c" :: Nil
no funcionará. También parece que puede crear instancias de unNil
aswell resultado de sobrecarga
Mis preguntas son:
- ¿Hay alguna otra forma de realizar esta operación?
- ¿Cuál es mejor?
- ¿No está permitido el
Seq("a", "b") ::: Nil
una falla de los desarrolladores de Scala?
Véase también http://stackoverflow.com/q/6559996/770361 para ':::' equivalent en non-Lists –