Note
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Praxisteil & Übungen: Das wöchentliche Kontrollsystem
Um den harten Wochenplan erfolgreich zu absolvieren, musst du deine Arbeitsumgebung (den Workspace) als unerbittliches Kontrollorgan nutzen. In Rust gilt: Dein Code ist erst fertig, wenn der Compiler schweigt, Clippy zufrieden ist und alle Tests grün sind.
1. Das wöchentliche Prüfsystem: Die drei Stufen der Qualitätskontrolle
Führe am Ende jeder Woche in deinem Terminal folgende Befehle im entsprechenden Übungsverzeichnis aus:
-
Stufe 1: Syntax & Typen prüfen
cargo checkZiel: Keine roten Fehlermeldungen mehr. Der Compiler muss den Code logisch verstehen.
-
Stufe 2: Logik validieren (Die Unit-Tests)
cargo testZiel: Alle Tests müssen mit
okbewertet werden. Wenn ein Test fehlschlägt, ist deine Implementierung logisch fehlerhaft, selbst wenn sie kompiliert. -
Stufe 3: Stil & Best Practices prüfen
cargo clippyZiel: Keine Warnungen. Clippy ist der eingebaute Linter von Rust, der dich auf ineffizienten Code, unnötige Zuweisungen oder unidiomatischen Stil hinweist.
2. Der Woche-2-Selbsttest: Ownership-Validierung
Bist du bereit für Woche 2? Kopiere das folgende Programm in deine src/main.rs. Es enthält absichtlich einen Fehler, den du korrigieren musst. Es dient als Einstiegstest, um zu prüfen, ob du das Konzept von Ausleihen (Borrowing) verstanden hast.
1: fn berechne_laenge(s: String) -> usize {
2: s.len()
3: } // Hier wird 's' zerstört!
4:
5: fn main() {
6: let text = String::from("Rust-Trainingsplan");
7:
8: // Wir übergeben 'text' per Wert (Ownership verschiebt sich)
9: let laenge = berechne_laenge(text);
10:
11: // FEHLER: 'text' wurde in Zeile 9 verschoben und ist hier ungültig!
12: println!("Der Text '{}' hat die Länge {}.", text, laenge);
13: }
14:
15: #[cfg(test)]
16: mod tests {
17: use super::*;
18:
19: #[test]
20: fn test_laenge() {
21: let test_str = String::from("Test");
22: // Der Test soll prüfen, ob wir die Länge ermitteln können,
23: // ohne die Variable unbrauchbar zu machen.
24: assert_eq!(test_str.len(), 4);
25: }
26: }
Deine Aufgabe zur Freischaltung von Woche 3:
- Führe
cargo checkaus und analysiere die Fehlermeldung. - Ändere die Signatur von
berechne_laengein Zeile 1 so ab, dass sie eine Referenz (&Stringoder besser&str) akzeptiert. - Passe den Aufruf in Zeile 9 so an, dass eine Referenz übergeben wird (
&text). - Führe
cargo testaus. Sobald alle Tests grün sind, hast du Woche 2 gemeistert und darfst mit Woche 3 fortfahren!
Note
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).