Рассмотрим этот пример решения Advent of Code 2015 1.2.
fn main() {
// advent of code 1.2 2015
// you are at floor 0
// if instruction is ) go one floor up, else go one floor down
// what index has the character that makes you go below floor 0
let instruction = ")))(((()))))";
let mut floor = 0;
for (i, c) in input.chars().enumerate() {
if c.to_string() == ")" {
floor += 1;
} else {
floor -= 1;
}
if floor < 0 {
break;
}
}
// will fail
println!("floor: {}", i)
}
Как можно получить доступ к i
вне блока цикла?
Прочитав Понимание области действия и совпадений с теневым копированием и эта глава книги, я понимаю, почему мой код не работает, но я не могу понять, как с этим справиться и использовать i
вне блока.
Моя проблема в том, что я не понял назначение областей в Rust? Должен ли я поместить цикл внутри функции и вернуть i
, если я хочу использовать его вне области действия цикла?
d
в алфавите, тогда как это был просто пример. - person Karl Anka   schedule 20.03.2018