

Programmiersprache: Rust 1.58 erweitert Format-Strings und verschmälert den Pfad
source link: https://www.heise.de/news/Programmiersprache-Rust-1-58-erweitert-Format-Strings-und-verschmaelert-den-Pfad-6326974.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Das Rust-Team hat im planmäßigen Sechswochentakt Version 1.58 der Programmiersprache veröffentlicht. Das dritte Release in der Edition Rust 2021 bringt nur wenige Neuerungen mit. Nennenswert ist vor allem die Erweiterung von Format-Strings und die Anpassungen des Struct Command
unter Windows.
Anzeige
Aus der weiteren Umgebung
Format-Strings können Argumente aus dem Umfeld über einen in geschweiften Klammern eingefassten Identifier übernehmen. Bisher mussten diese direkt in der Anweisung stehen und über ihre Position oder ihren Namen identifizierbar sein. Mit Rust 1.58 können die Argumente auch zuvor im selben Scope definiert sein, wie in folgendem kleinen Beispiel aus dem Rust-Blog:
// Neu in Rust 1.58:
let person = get_person();
// ...
println!("Hello, {person}!"); // captures the local `person`
// Schon vorher erlaubt:
println!("Hello, {}!", get_person()); // implicit position
println!("Hello, {0}!", get_person()); // explicit index
println!("Hello, {person}!", person = get_person()); // named
Die Identifier lassen sich nicht nur für Textteile, sondern auch für Formatierungsparamter wie width$
verwenden. Rust verarbeitet allerdings nur reine Identifier. Wer Ausdrücke oder andere komplexe Einbindungen in Format-Strings nutzen will, muss sie zuvor einem Identifier zuweisen oder den Ausdruck wie bei der bisherigen Vorgehensweise direkt in die Anweisung einbinden.
Lesen Sie auch
In dem mit Version 1.56 gestarteten Rust 2021 funktioniert die Einbindung der Identifier auch in panic!
-Makros, das die Version 1.57 für den erweiterten Einsatz stabilisiert hatte. Rust 2015 und 2018 verarbeiten den Inhalt von panic!("{ident}")
dagegen nicht als Format-, sondern als unformatierten String. Der Compiler spuckt daher im Zusammenspiel mit den älteren Editionen eine Warnung aus, dass der Befehl vermutlich nicht den gewünschten Effekt hat.
Ignoriere das aktuelle Verzeichnis!
Unter Windows verschmälert das aktuelle Rust-Release den Suchpfad für ausführbare Dateien. Das Struct std::process::Command
bezieht nicht mehr das aktuelle Verzeichnis mit ein. Das Verhalten ist der historischen Arbeitsweise der createProcess
-API unter Windows geschuldet.
Auch die Eingabeaufforderung unter Windows nimmt jeweils das aktuelle Verzeichnis in den Pfad, die PowerShell dagegen aus Sicherheitsgründen nicht. Die Macher der Programmiersprache Go haben 2021 die Sicherheitslücke ebenfalls erkannt. Seitdem ignoriert der Befehl go-get
das aktuelle Verzeichnis unter Windows.
Mit der Anpassung entfernt Rust noch eine weitere Altlast aus dem Suchpfad und bezieht das 16-bit-Windows-Systemverzeichnis nicht mehr mit ein.
Weitere Neuerungen in Rust 1.58 wie der erweiterte Einsatz von #[must_use]
in der Standardbibliothek lassen sich dem Rust-Blog entnehmen. Wie üblich können Entwicklerinnen und Entwickler, die Rust bereits installiert haben, das aktuelle Release über rustup update stable
herunterladen. Für diejenigen, die noch kein Rust verwenden, ist das rustup-Tool auf der Download-Seite separat verfügbar.
(rme)
Recommend
-
4
Programmiersprache: Rust 1.57 – Don't Panic! Das zweite Release der neuen Edition 2021 ist da. Rust 1.57 unterstützt nutzerdefinierte Profile in Cargo, es stabilisiert einige APIs und die panic...
-
7
Programmiersprache: Rust legt im produktiven Einsatz zu Der im Dezember durchgeführte Rust Survey 2021 zeigt Wachstum beim produktiven Einsatz, der jedoch für einen guten Teil der Befragten ein...
-
4
Im planmäßigen Sechswochenrhythmus ist Rust 1.59 erschienen. Im Vergleich zu den vorigen beiden Punktreleases bringt die aktuelle Version mehr Neuerungen mit. Unter anderem lässt sich für einige Plattformen Assembler-Code in Rust-Programmen v...
-
5
Programmiersprache Rust 1.60 zeigt Codeabdeckung und sieht Zeitspannen positiv Der Compiler bietet eine Anbindung an die sourcebasierte Codeabdeckung von LLVM. Außerdem stolpert die Sprache nic...
-
8
Programmiersprache Rust 1.62 kann Kernel für x86-64 bauen Neben der Ergänzung für Bare-Metal-Systeme bietet das Release schlankere Mutexes unter Linux und erlaubt Stan...
-
10
Im planmäßigen Sechswochentakt ist Rust 1.63 erschienen. Das Release bringt gleich zwei Änderungen, die mit dem Ownership-Konzept von Rust zusammenhängen. Zum einen erlauben Scoped Threads einen flexibleren Umgang mit den Daten für einen Thread un...
-
4
Programmiersprache Rust: Makros - Einführung in ein unverzichtbares Werkzeug In Rust sind Makros ein mächtiges Werkzeug, das nicht mit den einfachen Textersetzungen i...
-
4
Inhaltsverzeichnis Das planmäßig im Sechswochentakt veröffentlichte Rust 1.65 stabilisiert mit Generic Associated Types ein von vielen gewünschtes Feature, das s...
-
7
Programmiersprache Rust 1.66 erweitert Enumerations und entfernt Abhängigkeiten Enums mit Feldern dürfen neuerdings eine explizite Diskriminante erhalten, und ein neue...
-
12
Programmiersprache: Rust Foundation überarbeitet Trademark-Entwurf Der erste Entwurf neuer Regeln für die Wortmarke und das Logo von Rust führte zu Aufregung. Nun arbe...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK