Avatar ·

Was ist der Unterschied zwischen usize und u32 in Rust? Wann verwendet man was?

Hallo zusammen! Ich habe vor ein paar Wochen angefangen, Rust zu lernen, und bin auf eine unklare Stelle gestoßen. Im Buch "The Rust Programming Language" sehe ich oft die Verwendung des Typs `usize` für Indizes und Längen, aber ich treffe auch auf `u32`. Ich kann nicht verstehen, worin der grundlegende Unterschied zwischen ihnen besteht. Zum Beispiel habe ich ein einfaches Programm geschrieben, das die Elemente eines Vektors durchläuft: ```rust fn main() { let v = vec![10, 20, 30, 40, 50]; // Variante 1: Verwende u32 for i in 0..v.len() as u32 { println!("{}", v[i as usize]); } // Variante 2: Verwende usize for i in 0..v.len() { println!("{}", v[i]); } } ``` Die erste Variante funktioniert, aber ich muss eine Menge Typumwandlungen durchführen: `as u32` und `as usize`. Die zweite Variante funktioniert ohne Umwandlungen. Aber ich habe gehört, dass