Avatar ·

Comment appliquer une fonction à chaque élément d'un vecteur en Rust (équivalent de map) ?

Bonjour, collègues ! Je viens de commencer à apprendre Rust, je suis passé de Python, et j'ai un problème avec le traitement des vecteurs. En Python, j'avais l'habitude de faire ceci : ```python numbers = [1, 2, 3, 4] squared = list(map(lambda x: x**2, numbers)) # [1, 4, 9, 16] ``` Ou avec une list comprehension, ce qui est encore plus pratique. En Rust, j'ai écrit un code à peu près comme ceci : ```rust fn main() { let numbers = vec![1, 2, 3, 4]; // Je veux obtenir un nouveau vecteur avec les carrés des nombres let squared: Vec = numbers.map(|x| x * x).collect(); println!("{:?}", squared); } ``` Le compilateur donne une erreur : ``` error[E0599]: no method named `map` found for struct `Vec` in the current scope ``` Je comprends que Rust n'est pas Python, et que tout est plus strict avec les types. Mais comment traiter chaque élément d'un vecteur alors ? J'ai entendu parler de certains itérateurs, mais je ne comprends pas encore complètement comment les utiliser. S'il vous plaît, indiquez-moi comment appliquer correctement une fonction à chaque élément pour obtenir un nouveau vecteur ? J'ai besoin d'un nom