Menü

Programmiersprachen: Rust 1.35 bringt nützliche Ergänzungen

Mit dem aktuellen Release lassen sich unter anderem auf dem dynamischen Speicher abgelegte Funktionen so wie reguläre verwenden.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 20 Beiträge
Von

Das Rust-Team hat Version 1.35 der ursprünglich von Mozilla ins Leben gerufenen Programmiersprache veröffentlicht. Dabei heben sie eine Neuerung hervor, die den Umgang mit Funktionen, die auf dem dynamischen Speicher statt auf dem Stack liegen erweitert. Diese lassen sich nun an Stellen verwenden, an denen das System reguläre Funktionen erwartet. Außerdem funktioniert das Debugger-Makro ohne Parameter.

Rust 1.35 implementiert für Funktionen, die über Box< T > auf dem dynamischen Speicher (Heap) statt dem standardmäßig verwendeten Stack gespeichert werden, passende Closure-Traits, um sie an Stellen zu verwenden, an denen die Sprache reguläre Funktionen erwartet. Konkret existieren für Box<dyn Fn>, Box<dyn FnOnce> und Box<dyn FnMut> die Traits Fn, FnOnce beziehungsweise FnMut.

Durch die Neuerung funktioniert unter anderem folgender Code aus dem Rust-Blog, der die übergebene Funktion direkt aufruft:

fn foo(x: Box<dyn FnOnce()>) {
x()
}

Eine kleine, aber nützliche Ergänzung ist, dass das in Rust 1.32 eingeführte Makro dbg! neuerdings ohne Parameter funktioniert. Das Makro dient üblicherweise dazu, Ausdrücke zu berechnen und sie zusammen mit der Position im Sourcecode zusammen auszugeben. Ohne Parameter erscheint lediglich die Datei und Zeilennummer in folgender Form:

[src/main.rs:5]

Die Ausgabe hilft Entwicklern nachzuvollziehen, welche Codepfade das Programm nimmt.

Die neue Methode copysign kopiert das Vorzeichen einer Fließkommazahl auf eine andere und ist für die Primitive f32 und f64 verfügbar. Eine weitere nützliche Hilfsfunktion ist contains das überprüft, ob ein bestimmter Wert in Range, RangeFrom, RangeTo, RangeInclusive beziehungsweise RangeToInclusive enthalten ist.

Weitere Neuerungen in Rust 1.35 lassen sich dem Rust-Blog entnehmen. Eine vollständige Übersicht der Änderungen und Stabilisierungsmaßnahmen sind in den Release Notes aufgeführt. Auf der Tools-Seite findet sich ein Installationswerkzeug. Das Repository auf GitHub enthält zudem unter anderem den Sourcecode für den Compiler und die Standardbibliothek sowie eine Dokumentation. (rme)