Avatar ·

Wie erhält man einen Slice als Array fester Größe in Rust?

Hallo! Ich habe angefangen, Rust zu lernen, und bin auf ein Problem gestoßen, das einfach erscheint, aber ich finde keine elegante Lösung. Ich habe einen Slice von einem Vektor oder einem anderen Array, z.B. `&[u8]`. Ich muss ihn in ein Array fester Größe umwandeln, z.B. `[u8; 4]`. In anderen Sprachen würde ich einfach die Typen casten oder die ersten N Elemente nehmen, aber in Rust ist alles streng mit Typen. Hier ist ein Beispiel, das nicht funktioniert: ```rust fn main() { let data: Vec = vec![1, 2, 3, 4, 5]; let slice: &[u8] = &data[0..4]; // Ich möchte ein Array [u8; 4] erhalten let array: [u8; 4] = slice; // Fehler: expected array `[u8; 4]`, found `&[u8]` } ``` Ich weiß, dass ich jedes Element manuell kopieren kann, aber das sieht hässlich aus: ```rust let mut array: [u8; 4] = [0; 4]; for (i, &val) in slice.iter().enumerate() { array[i] = val; } ``` Gibt es eine Möglichkeit, dies idiomatischer zu machen? Ich habe von `try_into()` gehört, aber es gibt ein Result zurück, und ich bin nicht sicher, ob das richtig ist. Hinweis?