Avatar ·

Comment obtenir une slice (tranche) sous forme de tableau (array) de taille fixe en Rust ?

Bonjour ! J'ai commencé à apprendre Rust et je suis confronté à un problème qui semble simple, mais je ne trouve pas de solution élégante. J'ai une slice (tranche) provenant d'un vecteur ou d'un autre tableau, par exemple `&[u8]`. J'ai besoin de la convertir en un tableau de taille fixe, par exemple `[u8; 4]`. Dans d'autres langages, je ferais simplement un cast de type ou je prendrais les N premiers éléments, mais en Rust tout est strict avec les types. Voici un exemple qui ne fonctionne pas : ```rust fn main() { let data: Vec = vec![1, 2, 3, 4, 5]; let slice: &[u8] = &data[0..4]; // Je veux obtenir un tableau [u8; 4] let array: [u8; 4] = slice; // Erreur : expected array `[u8; 4]`, found `&[u8]` } ``` Je sais que je peux copier manuellement chaque élément, mais cela semble moche : ```rust let mut array: [u8; 4] = [0; 4]; for (i, &val)