Ein String ist ein Struct, das eine Sequenz von utf-8-Bytes im Heap-Speicher besitzt.
Da sich sein Speicher auf dem Heap befindet, kann er erweitert, verändert usw. werden, auf eine Weise, wie es bei String-Literalen nicht möglich ist.
Gängige Methoden:
push_str fügt weitere utf-8-Bytes an das Ende eines Strings an.replace ersetzt Sequenzen von utf-8-Bytes durch andere.to_lowercase/to_uppercase für Änderungen der Groß-/ Kleinschreibung.trim zum Entfernen von Leerraum.Wenn ein String fallen gelassen wird, wird auch sein Heap-Speicher fallen gelassen.
String besitzt einen +-Operator, der den String um einen &str erweitert und sich selbst zurückgibt, aber das ist vielleicht nicht so ergonomisch, wie Du hoffen würdest.