Was ist der Unterschied zwischen `usize` und `u32`?
In der Dokumentation sagt usize
ist
Operationen und Konstanten für Zeiger-große unsigned Integer.
In den meisten Fällen, die ich ersetzen können usize
mit u32
und nichts passiert. Also ich verstehe nicht, warum brauchen wir zwei Arten, die so ähnlich sind.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die Dokumentation besagt
usize
ist Zeigergröße, also seine tatsächliche Größe hängt von der Architektur Ihres kompilieren Sie Ihr Programm für.Als Beispiel, auf einem 32-bit-x86-computer
usize = u32
, während auf x86_64-Rechnern,usize = u64
.usize
gibt Ihnen die Gewähr, immer groß genug, um alle Zeiger oder eine Aufrechnung in einer Daten-Struktur, währendu32
können zu klein sein, auf manchen Architekturen.usize
geben Sie für die Sicherheit?u32
ist oft gut. Die standard-Bibliothek verwenden Sie immerusize
wenn es angebracht ist, und der Rost wird nicht geräuschlos konvertierenu32
zu einemusize
, so werden Sie sehen, wenn Sie benötigt werden.u32
auch zu groß, wenn Sie arbeiten auf einem embedded-Systeme, die Rost als System-Sprache ist entworfen, um gut zu arbeiten mit. Wennu32
war immer zu klein, die Sprache, wahrscheinlich würde haben wurden entworfen, um automatisch konvertierenu32
inusize
.usize
könnte zu Verwirrung führen, in Fällen, die Sie interessiert sind, deterministisches Verhalten, oder serialisieren.