Programmiersprache: Rust 1.53 erlaubt Unicode für Identifier
Im aktuellen Release implementieren Arrays zudem das IntoIterator-Trait und Oderverknüpfungen sind verschachtelt in Patterns erlaubt.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/1/2/3/1/7/9/Rust-62d83ce4f15a9605.jpeg)
(Bild: Callum Bainbridge / Shutterstock.com)
Im turnusmäßigen Sechswochenrhythmus ist Rust 1.53 erschienen. Die neue Version implementiert das IntoInterator
-Trait für Arrays und erlaubt verschachtelte Oder-Patterns. Außerdem dürfen Identifier nun Unicode-Zeichen enthalten. Für die Paket-Registry Cargo gibt es eine Anpassung im Interesse nicht-rassistischer Sprache.
Durchzählen ohne Referenz
Nachdem Rust 1.51 die API std::array::IntoIter
zum Iterieren über Arrays by Value statt by Reference eingeführt hat, implementieren Arrays im aktuellen Release das Trait IntoIterator
. Somit ist das direkte Iterieren über Arrays by Value in folgender Form möglich:
for i in [1, 2, 3] {
..
}
Bisher mussten Entwicklerinnen und Entwickler das Iterieren by Reference durchführen und entweder &[1, 2, 3]
oder den Methodenaufruf [1, 2, 3].iter()
verwenden. Mit der Implementierung des Traits ist es erlaubt, Arrays an Methoden zu übergeben, die als Parameter T: IntoIterator
erwarten. Derzeit ist unter der Haube noch ein Workaround erforderlich, der aber mit der Implementierung in Rust 2021 entfallen soll.
Schriftzeichen, aber keine Emoji für Identifier
Identifier durften bisher nur aus ASCII-Zeichen bestehen. Das aktuelle Release erlaubt beliebige Unicode-Schriftzeichen auf Basis von Unicode 13. Der Compiler spuckt eine Warnung bei Zeichen aus, die einander ähnlich sind und somit zu Verwechslungen führen können. Wer glaubt, subtil seiner Meinung über Variablen über Emojis auszudrücken, wird enttäuscht: Diese sind innerhalb von Identifiern weiterhin untersagt. Den Einsatz von asiatischen und europäischen Sonderzeichen zeigt folgendes Beispiel aus dem Rust-Blog:
const BL�HAJ: &str = "🦈";
struct 人 {
名字: String,
}
let α = 1;
Das Rust-Team hat zudem die Pattern-Syntax erweitert. Sie erlaubt nun die verschachtelte Oder-Verknüpfung über |
, sodass neuerdings Some(1 | 2)
als Alternative für Some(1) | Some(2)
erlaubt ist.
Neben den Neuerungen stabilisiert das Release zahlreiche APIs, darunter für Arrays neben dem IntoIterator
-Trait die APIs array::from_ref
und array::from_mut
.
Nennenswert ist zudem, dass die Paket-Registry Cargo neuerdings als Standard-HEAD
für Git-Repositories nicht mehr master
als Standard erwartet. Damit entfällt für die Repositories, die bereits im Zuge der Umstellung auf nichtrassistische Sprache main
statt master
für den Hauptzweig verwenden, die explizite Angabe von branch = "main"
.
Weitere Details zu Rust 1.53 lassen sich dem Rust-Blog entnehmen. Die vollständige Liste der Änderungen und Neuerungen findet sich in den Release Notes. 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)