Um das Problem zu verstehen, müssen Sie darüber nachdenken, was der Compiler sieht.
In der Regel gibt es bei einem Compiler keine Gründe für den Wert eines Ausdrucks, sondern nur für den Typ . Also:
a
hat den Typ Vec<i32>
4
hat einen unbekannten ganzzahligen Typ Vec<i32>
implementiert Subscripting, also prüft a[4]
type Es ist nicht unbekannt, dass ein Compiler über -Werte nachdenkt, und es gibt verschiedene Möglichkeiten, es zu erhalten.
constexpr
zum Beispiel) Rust unterstützt derzeit keine von diesen, und obwohl es Interesse für die ersten beiden gibt, wird es sicherlich nicht vor 1.0 gemacht werden.
Somit werden die Werte zur Laufzeit überprüft und die Implementierung von Vec
wird korrekt ausgeführt (hier fehlgeschlagen).
Wenn Sie auf Elemente von Vec
mit Indexprüfung zugreifen möchten, können Sie Vec
als Slice und dann mit get
Methode . Betrachten Sie zum Beispiel den folgenden Code .
Dies gibt aus:
%Vor%Tags und Links rust