2016-11-26 4 views
2

Rustのルックアップテーブルとして宣言したグローバル静的配列があります。いくつかの奇妙な理由から、私は要素に値を割り当てることはできません。これがうまくいかないと、私はエラーを取得しておくいくつかの理由静的可変配列が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

**私はこれを**拡張せよ**これはしません。グローバル変数は*ひどい*のアイデアです。もしあなたがそれをやろうとするなら、あなたはスレッドセーフな方法でそれを行うかもしれません(http://stackoverflow.com/q/27791532/155423)。 – Shepmaster

+0

あなたはどこにでもいます! –

関連する問題