Avatar ·

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

सभी को नमस्ते! मैंने हाल ही में Rust सीखना शुरू किया है, और मुझे अनाम प्रकारों (anonymous types) की अवधारणा को लेकर कुछ समझ नहीं आ रही है। मैंने पढ़ा कि Rust में प्रत्येक closure लिटरल का अपना एक अद्वितीय, अज्ञात प्रकार होता है। उदाहरण के लिए, यह कोड: ```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) } ```