Ответ 1
Вы можете использовать целочисленный суффикс на одном из литералов, которые вы использовали в диапазоне. Вывод типа сделает все остальное:
for i in 1i64..101 {
println!("{}", i);
}
Пример C++:
for (long i = 0; i < 101; i++) {
//...
}
В Rust я попытался:
for i: i64 in 1..100 {
// ...
}
Я мог бы просто объявить let i: i64 =
var перед циклом for, но я предпочел бы узнать правильный способ сделать это, но это привело к
error: expected one of '@' or 'in', found ':'
--> src/main.rs:2:10
|
2 | for i: i64 in 1..100 {
| ^ expected one of '@' or 'in' here
Вы можете использовать целочисленный суффикс на одном из литералов, которые вы использовали в диапазоне. Вывод типа сделает все остальное:
for i in 1i64..101 {
println!("{}", i);
}
Нет, это не представляется возможным объявить тип переменной в for
цикла.
Вместо этого более общий подход (например, применимый также к enumerate()
) заключается в том, чтобы ввести привязку let
путем деструктурирования элемента внутри тела цикла.
Пример:
for e in bytes.iter().enumerate() {
let (i, &item): (usize, &u8) = e; // here
if item == b' ' {
return i;
}
}