Avatar ·

Pourquoi Rust a-t-il des types anonymes uniques et comment travailler avec eux ?

Bonjour à tous ! J'ai commencé à étudier Rust récemment et j'ai un problème de compréhension avec le concept de types anonymes. J'ai lu que dans Rust, chaque littéral de closure a son propre type unique et innommable. Par exemple, ce code : ```rust let add_one = |x: i32| x + 1; let double = |x: i32| x * 2; ``` Je comprends que `add_one` et `double` sont des closures différentes avec des types différents. Mais pourquoi cela a-t-il été fait ainsi ? En C++ ou dans d'autres langages, je peux simplement déclarer un pointeur de fonction ou utiliser `std::function`. Pourquoi Rust a-t-il choisi la voie des types anonymes uniques ? Il me semble que cela complique l'écriture de code générique, surtout quand je veux passer une closure à une fonction ou la stocker dans une structure. Par exemple, je ne peux pas simplement écrire : ```rust fn apply(f: ???, x: i32) -> i32 { f(x) } ```