иногда, но, как правило, следует избегать.
я есть следующий код:
const N: usize = 10000;
const S: usize = 7000;
#[derive(Copy, Clone, Debug)]
struct T {
a: f64,
b: f64,
f: f64
}
fn main() {
let mut t: [T; N] = [T {a: 0.0, b: 0.0, f: 0.0}; N];
for i in 0..N {
t[i].a = 0.0;
t[i].b = 1.0;
t[i].f = i as f64 * 0.25;
}
for _ in 0..S {
for i in 0..N {
t[i].a += t[i].b * t[i].f;
t[i].b -= t[i].a * t[i].f;
}
println!("{}", t[1].a);
}
}
Я не уверен, почему массивt
должен быть инициализирован таким образом. Первый цикл for предназначен для инициализации массива с содержащей структурой их соответствующими значениями.
Когда я пытаюсь пропустить инициализацию непосредственно с массивом:
let mut t: [T; N];
Я получаю следующую ошибку:
ошибка [E0381]: использование возможно неинициализированной переменной: t
Все циклы for предназначены для этого, я просто хочу знать, есть ли более разумный способ для массива и его инициализации с первым циклом for.