Zum Hauptinhalt Zur Navigation Zur Suche

Programmiersprache: Rust stabilisiert GATs nach sechseinhalb Jahren

Die Generic Associated Types in Rust 1.65 beschreibt das Projekt als ähnlich monumentale Neuerung wie Async. Hinzu kommt auch Let-Else.
/ Sebastian Grüner
3 Kommentare undefined News folgen (öffnet im neuen Fenster)
Das inoffizielle Maskottchen der Rust-Community ist eine Krabbe namens Ferris. (Bild: Pixabay)
Das inoffizielle Maskottchen der Rust-Community ist eine Krabbe namens Ferris. Bild: Pixabay

Die Rust-Community hat Version 1.65 ihrer Programmiersprache veröffentlicht(öffnet im neuen Fenster) . Das Team führt damit erstmals offiziell die sogenannten Generic Associated Types (GATs) ein. Ursprünglich vorgeschlagen worden sind diese erstmals im Frühjahr 2016(öffnet im neuen Fenster) und selbst nach langjährigen Diskussionen und der initialen Code-Aufnahme in den Compiler galt die Technik in Rust bisher als unvollständig implementiert. Das ändert sich nun aber.

In einem ausführlichen Blogeintrag zu den GATs(öffnet im neuen Fenster) heißt es, dass es sich dabei um eine "monumentale Errungenschaft" handele, ähnlich wie die zuvor schon eingeführte Async-Technik oder const Generics. Wie aus dem Namen GAT hervorgeht, handelt es sich dabei um eine spezielle Art der Associated Types(öffnet im neuen Fenster) , und zwar um Typen-Deklarationen innerhalb eines Traits.

Letztere wiederum sind ähnlich zu den Interfaces genannten Techniken in anderen Sprachen und ermöglichen die Definition bestimmter Funktionalität, die über mehrere Typen hinweg gleichbleibend genutzt werden kann. Und die darin deklarierten Associated Types können dank der GATs nun eben wiederum generalisiert werden. Die Generics werden in Rust mit <> markiert.

Bedingte Zuweisungen und benannte Blöcke

Neu in Rust 1.65 sind außerdem bedingte Zuweisungen über eine Let-Else-Anweisung. Zuvor konnten Variablen per Let nur starr zugewiesen werden, für eine bedingte Zuweisung mussten Umwege genutzt werden wie etwa über if let , was nun nicht mehr notwendig ist.

Für Schleifen, die nur exakt einmal ausgeführt werden, um einen benannten Break-Block nutzen zu können, hat die Rust-Community nun ebenfalls eine Abkürzung erstellt. Die benannten Break-Blöcke können jetzt in allen Anweisungen genutzt werden, die aus mehreren Blöcken bestehen.

In der aktuellen Version stabilisiert hat das Team außerdem die Backtrace-API, die jeweils plattformspezifisch einen Zugriff auf den Stacktrace ermöglicht. Ersetzt haben die Beteiligten ferner den Rust Language Server . Alternativ steht der Rust-Analyzer bereit.


Relevante Themen