2011-07-08 8 views
42

Hay algo que no entiendo sobre el collection.mutable.Seq de Scala. Describe la interfaz para todas las secuencias mutables, pero no veo métodos para agregar o anteponer elementos sin crear una nueva secuencia. ¿Me estoy perdiendo algo obvio aquí?Cómo agregar o anteponer a un Scala mutable.Seq

Hay :+ y +: para anexar y anteponer, respectivamente, pero crean nuevas colecciones, para ser coherentes con el comportamiento de las secuencias inmutables, supongo. Esto está bien, pero ¿por qué no hay un método como += y +=:, como ArrayBuffer y ListBuffer definir, para adjuntar en el lugar y anteponer? ¿Significa que no puedo referirme a un seq mutable que está escrito como collection.mutable.Seq si quiero hacer un apéndice in situ?

Una vez más, debo haber perdido algo obvio, pero no puedo encontrar lo ...

Respuesta

69

mutabilidad de secuencias sólo garantiza que usted será capaz de intercambiar los artículos para los más diferentes (a través del método update), como puedas con, por ejemplo, matrices primitivas. Sí no garantiza que podrá hacer que la secuencia sea más grande (para eso es el rasgo Growable) o más pequeña (Shrinkable).

Buffer es el rasgo abstracto que contiene Growable y Shrinkable, no Seq.

+1

¡Y todo tiene sentido ahora! Esa fue la parte obvia que me había perdido. ¡Gracias! –

+3

Oh. Me pregunto si esto alguna vez ha sido útil para alguien. –

Cuestiones relacionadas