Reichweite in Rust

Nilesh Katuwal 21 Juni 2023
  1. Verwenden Sie in Rust die Bereichsnotation a..b
  2. Verwenden Sie in Rust die Bereichsnotation a..=b
  3. a..b als C’s for Loop in Rust
Reichweite 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