Rust: Dokumentation: Unklarer Unterschied zwischen "String-Slices" und "String-Literalen" für Neueinsteiger

Erstellt am 14. Nov. 2015  ·  3Kommentare  ·  Quelle: rust-lang/rust

Aus dem Kapitel "Strings":

Rust hat zwei Haupttypen von Zeichenfolgen: &str und String . Lassen Sie uns zuerst über &str sprechen. Diese werden 'String-Slices' genannt. String-Literale sind vom Typ &'static str ...

Das Problem ist, dass ein Anfänger, der diese Zeilen liest, den falschen Schluss ziehen kann, dass "String-Slice" und "String-Literal" dasselbe bedeuten und String-Slices immer eine statische Lebensdauer haben.

Kommentar von Neuankömmling:

Tatsächlich wird die Tatsache erwähnt, dass die Scheiben im Buch unterschiedliche Lebensdauern haben können. Aber aus Sicht eines Anfängers gibt es keinen Unterschied zwischen "String Slice" und "String Literal", da diese Begriffe im Buch synonym verwendet werden . Wenn ich diese Zeilen las, dachte ich immer, dass diese Begriffe dasselbe bedeuten.

Hilfreichster Kommentar

@gandro , ja, aber es sieht so aus, als ob es für Neulinge nicht offensichtlich ist. Ich denke, wir sollten diese Zeilen in dem Buch deutlicher machen.

Alle 3 Kommentare

Um es klar zu sagen: Ein String-Literal ist nur ein String-Slice, das ewig lebt (weil es ein Zeiger auf die Rodata der Binärdatei oder was auch immer ist).

@gandro , ja, aber es sieht so aus, als ob es für Neulinge nicht offensichtlich ist. Ich denke, wir sollten diese Zeilen in dem Buch deutlicher machen.

Ja, immer eine tolle Sache! Nur zur Klärung für alle, die das reparieren wollen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen