Avatar ·

Rust में अद्वितीय अनाम प्रकार क्यों मौजूद हैं और उनके साथ कैसे काम करें?

सभी को नमस्ते! मैंने हाल ही में Rust सीखना शुरू किया है और मुझे अनाम प्रकारों (anonymous types) की अवधारणा को समझने में कठिनाई हो रही है। मैंने पढ़ा कि Rust में प्रत्येक closure literal का अपना अद्वितीय, अघोषित प्रकार होता है। उदाहरण के लिए, यह कोड: ```rust let add_one = |x: i32| x + 1; let double = |x: i32| x * 2; ``` मैं समझता हूँ कि `add_one` और `double` अलग-अलग closures हैं जिनके अलग-अलग प्रकार हैं। लेकिन ऐसा क्यों किया गया? C++ या अन्य भाषाओं में मैं function pointer घोषित कर सकता हूँ या `std::function` का उपयोग कर सकता हूँ। Rust ने अद्वितीय अनाम प्रकार बनाने का रास्ता क्यों चुना? मुझे लगता है कि यह सामान्यीकृत कोड लिखना कठिन बनाता है, खासकर जब मैं किसी function में closure पास करना चाहता हूँ या इसे struct में स्टोर करना चाहता हूँ। उदाहरण के लिए, मैं सीधे यह नहीं लिख सकता: ```rust fn apply(f: ???, x: i32) -> i32 { f(x) } ```