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.
Zeilenkommentare
Abschnitt betitelt „Zeilenkommentare“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!Mehrzeilige Kommentare
Abschnitt betitelt „Mehrzeilige Kommentare“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!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!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.
Code auskommentieren
Abschnitt betitelt „Code auskommentieren“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ührtKommentare, die wirklich helfen
Abschnitt betitelt „Kommentare, die wirklich helfen“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 minVergleich 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üßungDoku-Kommentare
Abschnitt betitelt „Doku-Kommentare“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.
Übungen
Abschnitt betitelt „Übungen“1. Eine Zeile abschalten
Abschnitt betitelt „1. Eine Zeile abschalten“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 1Zeile 32. Zwei Zeilen auf einmal abschalten
Abschnitt betitelt „2. Zwei Zeilen auf einmal abschalten“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 1Zeile 4Zusammenfassung
Abschnitt betitelt „Zusammenfassung“- 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
Abschnitt betitelt „Kurzer Check“Kurzer Check
1. Was macht Rust beim Kompilieren mit Kommentaren?
2. Wofür werden ///-Doku-Kommentare verwendet?
Punkte: 0 / 2
Weiterlesen
Abschnitt betitelt „Weiterlesen“- Kommentare – Die Programmiersprache Rust: der kurze offizielle Abschnitt über
//-Kommentare und wo sie üblicherweise stehen. - Comments – Rust by Example (auf Englisch): alle Kommentararten in einem lauffähigen Beispiel, auch Blockkommentare mitten in einem Ausdruck.
- Sinnvolle Dokumentationskommentare erstellen – Die Programmiersprache Rust: ein erster Blick auf
///und//!und wiecargo docsie nutzt. - How to write documentation – The rustdoc book (auf Englisch): Tipps, was in gute Doku-Kommentare gehört – für den Fall, dass du eine Bibliothek schreibst.
- Comments – The Rust Reference (auf Englisch): die genauen Regeln, auch für verschachtelte Blockkommentare.