Comment stocker une closure dans une structure en Rust ?
Bonjour ! J'ai commencé à apprendre Rust et j'ai rencontré un problème en essayant de stocker une closure dans une structure. J'ai une calculatrice simple qui doit effectuer différentes opérations en fonction de la closure passée.
Voici ce que j'essaie de faire :
```rust
struct Calculator {
operation: fn(i32, i32) -> i32,
}
fn main() {
let add = |a, b| a + b;
let calc = Calculator { operation: add };
println!("Result: {}", (calc.operation)(5, 3));
}
```
Ce code fonctionne, mais seulement si je passe une fonction ordinaire ou une closure qui ne capture pas de variables de l'environnement extérieur. Dès que j'essaie d'utiliser une closure qui capture des variables, le compilateur génère une erreur. Par exemple :
```rust
let multiplier = 2;
let multiply = |a, b| a * b * multiplier;
let calc = Cal
No answers yet.
Connectez-vous pour laisser une réponse