Avatar ·

Comment rassembler les éléments d'un itérateur dans un tableau de taille fixe en Rust ?

Bonjour à tous ! J'ai récemment commencé à apprendre Rust et je suis confronté à un problème qui semble très simple, mais je n'arrive pas à trouver la bonne solution.

J'ai un itérateur qui renvoie une séquence de nombres. Je veux rassembler tous ces nombres dans un tableau [i32; N], où N est connu à la compilation. Par exemple, j'écris une fonction qui prend une slice de nombres et renvoie un tableau des 5 premiers éléments :

fn first_five(data: &[i32]) -> [i32; 5] {
    data.iter().take(5).collect() // ne fonctionne pas !
}

Le compilateur renvoie une erreur : the trait bound `[i32; 5]: FromIterator<&i32>` is not satisfied. Je comprends que collect() fonctionne avec des collections comme Vec, mais comment le faire fonctionner avec des tableaux ?

J'ai essayé