$ rustc --version
rustc 0.12.0-pre-nightly (a6758e344 2014-08-19 23:56:02 +0000)
Ich habe den folgenden Code:Wie erstelle ich ein Vec aus einem Bereich und mische es?
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);
und erhalten die folgenden Fehler:
<anon>:6:24: 6:29 error: cannot borrow immutable dereference of `&`-pointer `*slice` as mutable
<anon>:6 task_rng().shuffle(slice);
Ich glaube, ich verstehe, dass der Inhalt von Vektoren und Scheiben unveränderlich ist und dass bewirkt, dass der Fehler hier aber ich bin unsicher.
Die Signatur von as_mut_slice
ist pub fn as_mut_slice<'a>(&'a mut self) -> &'a mut [T]
, also sollte die Scheibe veränderbar sein, aber es ist irgendwie nicht.
Ich weiß, dass es eine einfache Lösung geben muss, aber ich habe mein Bestes versucht und konnte es nicht zum Laufen bringen.
danke Ihnen sehr, dass der Trick für mich getan hat! –
Diese Lösung ist nicht mehr gültig, rand ist jetzt eine Kiste und die Funktion heißt 'thread_rng', nicht' task_rng' –