Die zweite Ausgabe von Die Rust-Programmiersprachestates the following über While-Schleifen für über ein Array iterieren:Warum wird die Leistung von `while` bei der Iteration über ein Array langsamer als` for`?
fn main() {
let a = [10, 20, 30, 40, 50];
let mut index = 0;
while index < 5 {
println!("the value is: {}", a[index]);
index = index + 1;
}
}
[...] Es ist auch langsam, weil der Compiler Laufzeitcode fügt die Bedingung erfüllen Überprüfen Sie jedes Element bei jeder Iteration durch die Schleife.
Als eine effizientere Alternative können Sie eine for-Schleife verwenden und Code für jedes Element in einer Auflistung ausführen.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
}
In C++ Ich würde erwarten, dass ein Compiler/Optimierer etwas mit dem entsprechenden Laufzeitleistung zu erzeugen.
Warum ist das in Rust nicht der Fall?