9
我需要將數組的每個元素初始化爲一個非常量表達式。我能做到這一點,而不必首先初始化數組中的每個元素來表達一些無意義的表達?這裏是希望我能夠做一個例子:有沒有辦法不必兩次初始化數組?
fn foo(xs: &[i32; 1000]) {
let mut ys: [i32; 1000];
for (x, y) in xs.iter().zip(ys.iter_mut()) {
*y = *x/3;
}
// ...
}
該代碼給出了編譯時錯誤:
error[E0381]: use of possibly uninitialized variable: `ys`
--> src/main.rs:5:37
|
5 | for (x, y) in xs.iter().zip(ys.iter_mut()) {
| ^^ use of possibly uninitialized `ys`
要解決這個問題,我需要改變的第一線功能與像這樣一些虛擬值初始化的ys
元素:
let mut ys: [i32; 1000] = [0; 1000];
有沒有辦法省略掉額外的初始化?包裝unsafe
區塊中的所有內容似乎沒有任何區別。