$ rustc --version
rustc 0.12.0-pre-nightly (a6758e344 2014-08-19 23:56:02 +0000)
ho il seguente codice:Come posso creare un VEC da un intervallo e mischiarlo?
use std::rand::{task_rng, Rng};
let mut vec: Vec<uint> = range(0u,10u).collect();
let mut slice: &[uint] = vec.as_mut_slice();
task_rng().shuffle(slice);
e ottenere il seguente errore:
<anon>:6:24: 6:29 error: cannot borrow immutable dereference of `&`-pointer `*slice` as mutable
<anon>:6 task_rng().shuffle(slice);
credo di aver capito che il contenuto dei vettori e fette è immutabile e che causa l'errore qui , ma non sono sicuro.
La firma di as_mut_slice
è pub fn as_mut_slice<'a>(&'a mut self) -> &'a mut [T]
, quindi la sezione deve essere modificabile, ma in qualche modo non lo è.
So che ci deve essere una soluzione facile, ma ho fatto del mio meglio e non riuscivo a farlo funzionare.
vi ringrazio molto, che ha fatto il trucco per me! –
Questa soluzione non è più valida, rand ora è una cassa e la funzione è chiamata 'thread_rng', non' task_rng' –