Reichweite in Rust
-
Verwenden Sie in Rust die Bereichsnotation
a..b
-
Verwenden Sie in Rust die Bereichsnotation
a..=b
-
a..b
als C’sfor
Loop in Rust
In diesem Artikel werden wir lernen, wie man eine Range in Rust erstellt.
Verwenden Sie in Rust die Bereichsnotation a..b
Mit dem Konstrukt for in
kann ein Iterator
durchlaufen werden. Eine der einfachsten Methoden zur Generierung eines Iterators ist die Verwendung der Bereichsnotation a..b
.
Dies ist eine der gebräuchlichsten Schreibweisen. Dadurch werden Werte von a
(inklusive) bis b
(exklusive) in Ein-Schritt-Schritten erzeugt.
Der Bereich umfasst sowohl den Beginn als auch das Ende der Zeit. Und wenn wir den Bereich einschließlich des Endes machen wollen, können wir dafür die Bereichssyntax a..=b
verwenden.
Beispiel:
fn main() {
for i in 1..10 {
if i % 5 == 0 {
println!("hellothere");
} else if i % 2 == 0 {
println!("hello");
} else if i % 4 == 0 {
println!("there");
} else {
println!("{}", i);
}
}
}
Ausgang:
1
hello
3
hello
hellothere
hello
7
hello
9
Hier nimmt n
bei jeder Iteration die Werte 1, 2, ..., 10
an.
Verwenden Sie in Rust die Bereichsnotation a..=b
Stattdessen kann auch a..=b
für einen range
inklusive an beiden Enden verwendet werden. Der obige Code kann auch wie folgt geschrieben werden.
fn main() {
for i in 1..=10 {
if i % 5 == 0 {
println!("hellothere");
} else if i % 2 == 0 {
println!("hello");
} else if i % 4 == 0 {
println!("there");
} else {
println!("{}", i);
}
}
}
Ausgang:
1
hello
3
hello
hellothere
hello
7
hello
9
hellothere
Hier nimmt n
auch die Werte an: 1, 2, ..., 10
in jeder Iteration.
a..b
als C’s for
Loop in Rust
Die a..b
-Syntax kann verwendet werden, um eine Reihe von Zahlen zu durchlaufen, ähnlich wie die for
-Schleifen in C.
for i in 0..3 {
println!("{}", i);
}
Wenn wir sowohl den Index als auch das Element eines Arrays benötigen, ist die Methode Iterator::enumerate
der idiomatische Weg, dies zu erreichen.
fn main() {
let values = ["rust", "rust1", "rust2"];
for (x, y) in values.iter().enumerate() {
println!("The string for {} is {}", x, y);
}
}
Ausgang:
The string for 0 is rust
The string for 1 is rust1
The string for 2 is rust2