2014-04-07 14 views
13

Gibt es eine Möglichkeit, verschachtelte for Schleifen in Rust zu haben und die äußere von innen zu zerbrechen, wie man es beispielsweise tun könnte. in Java? Ich weiß, Rust unterstützt benannte Pausen in loop, aber ich kann nicht scheinen, Informationen über das gleiche bezüglich for zu finden.Benannte Brüche in For-Schleifen in Rust

+0

Nicht genau das, wonach Sie suchen, aber Sie können immer von innerhalb der innersten Schleife zurückkehren. – ZunTzu

+0

Danke. Das ist aber nicht das, was ich brauche, also werde ich wahrscheinlich den Code reorganisieren. –

Antwort

27

Ja. Es verwendet die gleiche Syntax wie Lebenszeiten.

fn main() { 
    'outer: for x in range(0u, 5) { 
     'inner: for y in range(0u, 5) { 
      println!("{},{}", x, y); 
      if y == 3 { 
       break 'outer; 
      } 
     } 
    } 
} 

Siehe loop labels documentation.

+0

Danke. Das war genau das, wonach ich suchte (obwohl ich es im offiziellen Handbuch nicht finden konnte, zumindest für v0.9). –

+2

@NoeticJun Es wird im Abschnitt [Infinite Schleifen] (http://static.rust-lang.org/doc/0.9/rust.html#infinite-loops) (gefolgt von Break-Ausdrücken) erwähnt. Obwohl es ein wenig verwirrend ist, weil der Beispiel-Break 'break foo' statt 'break' foo 'ist. Es verwendet auch sowohl "Label" als auch "Lebenszeit", um auf dasselbe zu verweisen. Es sollte neu geschrieben werden. –