Es klingt wie eine dumme Frage, aber alles, was ich im Internet gefunden habe, war Müll. Ich kann einfach kein typisches Element T
zu einer Liste hinzufügen List[T]
. Ich habe es mit versucht, myList ::= myElement
aber es scheint, dass es ein seltsames Objekt erstellt und beim Zugriff auf myList.last
immer das erste Element zurückgegeben wird, das in die Liste aufgenommen wurde.
223
List
zu einem umgewandelt wirdListBuffer
, wird das Element angefügt, und dasListBuffer
konvertierte zurück ( so ziemlich wieString
undStringBuilder
in Java), aber das ist nur eine Vermutung.Das liegt daran, dass Sie es nicht tun sollten (zumindest mit einer unveränderlichen Liste). Wenn Sie wirklich wirklich ein Element an das Ende einer Datenstruktur anhängen müssen und diese Datenstruktur wirklich wirklich eine Liste sein muss und diese Liste wirklich wirklich unveränderlich sein muss, dann tun Sie Folgendes:
oder das:
quelle
:+
, so ineffizient sie auch sein mag, nur einmal neu erstellt wird.Listen in Scala können nicht geändert werden. Tatsächlich können Sie einer Scala keine Elemente hinzufügen
List
. Es ist eine unveränderliche Datenstruktur wie ein Java-String. Was Sie tatsächlich tun, wenn Sie in Scala "ein Element zu einer Liste hinzufügen", ist, eine neue Liste aus einer vorhandenen Liste zu erstellen . (Quelle)Anstatt Listen für solche Anwendungsfälle zu verwenden, schlage ich vor, entweder a
ArrayBuffer
oder a zu verwendenListBuffer
. Diese Datenstrukturen sollen neue Elemente hinzufügen.Nachdem alle Vorgänge ausgeführt wurden, kann der Puffer schließlich in eine Liste konvertiert werden. Siehe folgendes REPL-Beispiel:
quelle
Dies ähnelt einer der Antworten, ist jedoch unterschiedlich:
quelle
Wir können zwei Listen oder List & Array anhängen oder voranstellen. Anhängen
:
Vorab:
quelle