Zum Inhalt springen

Kommentare in Rust

Kommentare sind Notizen, die du für Menschen in deinem Code hinterlässt. Rust ignoriert sie beim Kompilieren komplett. Sie haben also nie Einfluss darauf, wie dein Programm läuft. Gute Kommentare erklären, warum Code etwas tut – nicht nur, was er tut.

Die häufigste Art von Kommentar beginnt mit //. Alles nach // in dieser Zeile wird ignoriert:

fn main() {
// Das ist ein Kommentar – Rust überspringt ihn komplett
println!("Hallo!"); // Kommentare können auch am Zeilenende stehen
}

Ausgabe:

Hallo!
▶ Selbst ausprobieren

Für eine längere Notiz kannst du einfach jede Zeile mit // beginnen:

fn main() {
// Dieses Programm begrüßt den Benutzer.
// Es gibt eine einzige Zeile Text aus.
// Geschrieben als erstes Beispiel.
println!("Hallo!");
}

Ausgabe:

Hallo!
▶ Selbst ausprobieren

Rust unterstützt außerdem Blockkommentare zwischen /* und */. Sie können sich über mehrere Zeilen erstrecken:

fn main() {
/*
Das ist ein Blockkommentar.
Er kann mehrere Zeilen umfassen,
ohne dass jede mit // beginnt.
*/
println!("Hallo!");
}

Ausgabe:

Hallo!
▶ Selbst ausprobieren

In der Praxis verwendet der meiste Rust-Code auch für mehrere Zeilen //. Das ist in der Community üblich und funktioniert gut mit den Tastenkürzeln deines Editors.

Kommentare sind praktisch, um eine Zeile vorübergehend abzuschalten, während du etwas testest:

fn main() {
println!("Das wird ausgeführt");
// println!("Das ist vorerst abgeschaltet");
}

Ausgabe:

Das wird ausgeführt
▶ Selbst ausprobieren

Ein Kommentar, der nur den Code wiederholt, bringt nichts. Der Code sagt ja schon, was passiert. Ein guter Kommentar erklärt, warum – oder er warnt vor etwas, das man beim Lesen nicht sieht:

fn main() {
let minutes = 135;
// Der Timer zeigt nur volle Stunden an. Die Ganzzahldivision
// verwirft den Rest – genau das wollen wir hier.
let hours = minutes / 60;
let leftover = minutes - hours * 60; // Minuten, die keine volle Stunde ergeben
println!("{hours} h {leftover} min");
}

Ausgabe:

2 h 15 min
▶ Selbst ausprobieren

Vergleich das mal mit einem Kommentar wie // Minuten durch 60 teilen. Der stimmt zwar, aber minutes / 60 kann jeder selbst lesen. Die nützliche Information ist, warum das Teilen hier in Ordnung ist.

Ein paar weitere Gewohnheiten, die sich lohnen:

  • Halte Kommentare aktuell. Ein Kommentar, der nicht mehr zum Code passt, ist schlimmer als gar keiner – denn man vertraut ihm.
  • // TODO: ist eine übliche Markierung für unfertige Arbeit, etwa // TODO: negative Zahlen behandeln. Viele Editoren heben das hervor und können alle TODOs eines Projekts auflisten.
  • Blockkommentare lassen sich in Rust verschachteln. Anders als in C kannst du Code, der schon einen /* */-Kommentar enthält, in einen weiteren Blockkommentar packen – und es funktioniert trotzdem:
fn main() {
/* Vorerst abgeschaltet:
println!("alte Begrüßung"); /* hat alle gegrüßt */
*/
println!("neue Begrüßung");
}

Ausgabe:

neue Begrüßung
▶ Selbst ausprobieren

Rust hat eine besondere Art von Kommentar, die mit /// (drei Schrägstrichen) beginnt. Das sind Doku-Kommentare (Doc Comments). Sie beschreiben Funktionen, und Rust kann daraus mit cargo doc eine Dokumentations-Website erzeugen, durch die du klicken kannst.

/// Addiert zwei Zahlen und gibt das Ergebnis zurück.
fn add(a: i32, b: i32) -> i32 {
a + b
}

Als Anfänger brauchst du Doku-Kommentare noch nicht. Merk dir nur: /// ist für Dokumentation, // für normale Notizen. Wenn du so weit bist, zeigt dir die Seite Dokumentation, wie du sie schreibst, die Doku baust und sogar Beispiele in Tests verwandelst.

Dieses Programm gibt drei Zeilen aus. Mach aus der mittleren Zeile einen Kommentar, sodass nur Zeile 1 und Zeile 3 ausgegeben werden. Tipp: Setz // an den Anfang der Zeile, die du abschalten willst.

fn main() {
println!("Zeile 1");
println!("Zeile 2");
println!("Zeile 3");
}
Lösung anzeigen
fn main() {
println!("Zeile 1");
// println!("Zeile 2");
println!("Zeile 3");
}

Ausgabe:

Zeile 1
Zeile 3
▶ Selbst ausprobieren

Gib jetzt Zeile 1 bis Zeile 4 aus, aber schalte die Zeilen 2 und 3 mit einem einzigen Blockkommentar ab. Tipp: Beginne den Kommentar mit /* vor Zeile 2 und beende ihn mit */ nach Zeile 3.

Lösung anzeigen
fn main() {
println!("Zeile 1");
/*
println!("Zeile 2");
println!("Zeile 3");
*/
println!("Zeile 4");
}

Ausgabe:

Zeile 1
Zeile 4
▶ Selbst ausprobieren
  • Kommentare sind Notizen, die Rust ignoriert. Nutze sie, um deinen Code zu erklären.
  • // beginnt einen Zeilenkommentar (die häufigste Art).
  • /* ... */ ist ein Blockkommentar für mehrere Zeilen, und Blockkommentare lassen sich verschachteln.
  • Gute Kommentare erklären das Warum, nicht das, was der Code ohnehin schon sagt.
  • /// ist ein Doku-Kommentar, aus dem Dokumentation erzeugt wird.

Kurzer Check

1. Was macht Rust beim Kompilieren mit Kommentaren?

2. Wofür werden ///-Doku-Kommentare verwendet?

Punkte: 0 / 2