배열의 각 요소를 상수가 아닌 식으로 초기화해야합니다. 배열의 각 요소를 먼저 무의미한 식으로 초기화 할 필요없이 할 수 있습니까?배열을 두 번 초기화 할 필요가없는 방법이 있습니까?
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
블록의 모든 것을 래핑해도 아무런 차이가없는 것처럼 보입니다.