Avatar ·

Comment passer une fonction en paramètre en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème. Dans d'autres langages, comme Python ou JavaScript, je peux facilement passer une fonction comme argument à une autre fonction. Par exemple : ```python def apply(func, x): return func(x) def double(x): return x * 2 result = apply(double, 5) ``` En Rust, j'ai essayé de faire quelque chose de similaire, mais le compilateur génère des erreurs. Voici mon code : ```rust fn apply(func: ???, x: i32) -> i32 { func(x) } fn double(x: i32) -> i32 { x * 2 } fn main() { let result = apply(double, 5); println!("{}", result); } ``` Je ne comprends pas quel type spécifier pour le paramètre `func`. J'ai essayé d'écrire `fn(i32) -> i32`, mais cela n'a pas fonctionné. Dans la documentation, il est question des traits `Fn`, `FnMut` et `FnOnce`, mais je suis confus quant à savoir lequel utiliser et comment déclarer correctement de telles fonctions. Indiquez-moi comment passer correctement une fonction en paramètre en Rust, de préférence avec des exemples concrets. <<>>

Utilisation des traits F