2016-11-26 12 views
2

녹 (Rust)에서 조회 테이블로 선언 한 전역 정적 배열이 있습니다. 어떤 이상한 이유 때문에 요소에 값을 할당 할 수 없습니다. 그것은 다음과 같습니다이 작동하지 않는 몇 가지 이유를 들어녹에서 정적 변경 가능 배열이 작동하지 않습니다.

pub static mut WON_TABLE: &'static [u8] = &[0; 1000]; 

fn main() { 
    for mov in 0..1000 { 
     unsafe { 
      WON_TABLE[mov as usize] = some_analyzer_function(mov); 
     } 
    } 
} 

나는 오류가 계속 :

error: cannot assign to immutable indexed content 

이 사람이이 벌어지고있는 이유를 알고 있나요을?

답변

1

방금 ​​대답을 알아 냈습니다. 배열 내의 변수를 가변적이라고 선언해야합니다. 나는 변경하여이 작업을 수행합니다

pub static mut WON_TABLE: &'static [u8] = &[0; 1000]; 

에 :

pub static mut WON_TABLE: &'static mut [u8] = &mut [0; 1000]; 

나는이 대답은 미래에 비슷한 문제를 가진 사람들에게 유용 바랍니다. 다른 사람이 이것을 확장 할 수 있다면 좋을 것입니다! : D

+0

나는 이것을 ** 확장하지 않을 것이다 **. 전역 변수는 끔찍한 아이디어입니다. 만약 당신이 그것을하려고한다면, 당신은 [thread-safe manner] (http://stackoverflow.com/q/27791532/155423)에서 그렇게 할 수도 있습니다. – Shepmaster

+0

당신은 어디 에나 있어요! –