Neue Sprachversion bringt einige neue Features mit sich

Rust 1.8 ist erschienen
Kommentare

Knapp anderthalb Monate nach der Veröffentlichung der Vorgängerversion Rust 1.7 nun mit Rust 1.8 das nächste Update der Systemprogammiersprache erschienen. Im Fokus des Releases stehen vor allem Bug-Fixes und zahlreiche Verbesserungen, aber auch einige neue Features wurden Rust 1.8 spendiert.

Darüber hinaus bringt die neue Sprachversion auch die weitere Stabilisierung verschiedener Library-Funktionen und -Methoden mit sich, außerdem wird derzeit verstärkt an der Implementierung eines neuen Build-Systems gearbeitet, das in Rust geschrieben ist und auf Cargo basiert. Im Rust-Blog hat das Entwickler-Team die Highlights der neuen Sprachversion vorgestellt.

Neue Features in Rust 1.8

Vor allem über zwei neue Features dürfen sich Entwickler freuen: So können ab Rust 1.8 verschiedene „operator equals“-Operatoren wie zum Beispiel += und -= mit verschiedenen Eigenschaften überladen werden. Wie bei anderen Operator-Eigenschaften auch erlauben zugehörige Typen die Nutzung verschiedener Typen auf beiden Seiten des Operators. Im Detail sieht die Neuerung, die im zugehörigen RFC nochmals ausführlich beschrieben wird, folgendermaßen aus:

use std::ops::AddAssign;

#[derive(Debug)]
struct Count {
  value: i32,
}

impl AddAssign for Count {
  fn add_assign(&mut self, other: Count) {
    self.value += other.value;
  }
}

fn main() {
  let mut c1 = Count { value: 1 };
  let c2 = Count { value: 5 };

  c1 += c2;

  println!("{:?}", c1);
}

Neu ist auch, dass ein struct ohne Inhalt in Rust 1.8 nun auch mit geschweiften Klammern definiert werden kann; zuvor löste diese Darstellung einen Deklarations-Fehler aus. Ursprünglich sollte der Verzicht auf geschweifte Klammern für mehr Konsistenz mit anderen leeren Declarations sorgen; seit Rust 1.0 ist das jedoch nicht mehr nötig, weil es keine Parsing-Ambiguität mehr gibt. Außerdem wird Entwicklern, die zwischen leeren und ausgefüllten Versionen eines structs wechseln, dadurch die Arbeit erleichtert.

Updates für Cargo

Neben den oben genannten neuen Features bringt Rust 1.8 auch einige Updates für Cargo mit sich. So kann cargo init nun etwa dazu genutzt werden, ein Cargo-Projekt direkt im aktuellen Arbeitsdirectory zu starten, anstatt wie bisher ein neues Subdirectory zu erstellen. Außerdem wurde mit cargo metadata ein neuer Subbefehl zum Abrufen von Metadaten eines Projekts implementiert.

Und apropos Cargo: In Rust 1.8 wurde Support für ein neues, auf Cargo basierendes und in Rust geschriebenes Build-System implementiert, das künftig make zum Erstellen von Rust-Programmen ersetzen soll. Noch befindet sich das neue Build-System allerdings im Anfangsstadium der Entwicklung und ist noch nicht als Default vorgesehen. Mehr Informationen dazu bietet die entsprechende GitHub-Issue.

Alle Neuerungen in Rust 1.8 sind zudem in den vollständigen Release Notes zusammengefasst; die neue Version steht auf der Projektwebsite zur Installation bereit.

Aufmacherbild: Rusted metal texture von Shutterstock / Urheberrecht: Ensuper

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -