Czy istnieje sposób na zagnieżdżenie pętli for
w Rust i złamanie zewnętrznej pętli wewnątrz wewnętrznej, tak jak można to zrobić np. w Javie? Wiem, że Rust obsługuje przerwane nazwy w loop
, ale nie mogę znaleźć informacji o tym samym w odniesieniu do for
.Nazwane przerwy dla pętli w Rust
Odpowiedz
Tak. Używa tej samej składni co wcielenia.
fn main() {
'outer: for x in range(0u, 5) {
'inner: for y in range(0u, 5) {
println!("{},{}", x, y);
if y == 3 {
break 'outer;
}
}
}
}
Zobacz loop labels documentation.
Dziękuję. Właśnie tego szukałem (chociaż nie mogłem go znaleźć w oficjalnym podręczniku, przynajmniej dla wersji 0.9). –
@NoeticJun Wspomniano o tym w sekcji [Nieskończone pętle] (http://static.rust-lang.org/doc/0.9/rust.html#infinite-loops) (a następnie wyrażenia Break). Chociaż jest to nieco mylące, ponieważ przykładowy break to 'break foo' zamiast' break 'foo'. Wykorzystuje również zarówno "etykietę", jak i "czas życia", aby odnosić się do tej samej rzeczy. Powinien zostać przepisany. –
Nie dokładnie to, czego szukasz, ale zawsze możesz "wrócić" z wnętrza najbardziej wewnętrznej pętli. – ZunTzu
Dziękuję. Jednak to nie jest to, czego potrzebuję, więc prawdopodobnie przeorganizuję kod. –