Avatar ·

Rust में फ़ंक्शन से इटरेटर (या कोई अन्य ट्रेट) सही तरीके से कैसे लौटाएं?

नमस्ते साथियों! मैंने Rust सीखना शुरू किया है और एक समस्या का सामना किया जो मुझे बहुत अजीब लगती है। मैं एक फ़ंक्शन लिखने की कोशिश कर रहा हूं जो एक इटरेटर लौटाता है, लेकिन कंपाइलर लगातार त्रुटि देता है। मैं यह करना चाहता हूं: मेरे पास संख्याओं का एक वेक्टर है, और मैं सम संख्याओं को फ़िल्टर करके उन पर एक इटरेटर लौटाना चाहता हूं। मैंने यह कोड लिखा: ```rust fn get_even_numbers(numbers: Vec) -> Iterator { numbers.into_iter().filter(|&x| x % 2 == 0) } ``` लेकिन कंपाइलर यह त्रुटि देता है: ``` error[E0277]: the size for values of type `(dyn Iterator + 'static)` cannot be known at compilation time ``` मैं समझता हूं कि ट्रेट्स निश्चित आकार वाले प्रकार नहीं हैं, लेकिन फिर इटरेटर को सही तरीके से कैसे लौटाएं? मैंने देखा है कि कुछ जगहों पर `Box>` का उपयोग किया जाता है, लेकिन यह एक अस्थायी समाधान जैसा लगता है। क्या कोई अधिक मुहावरेदार तरीका है? साथ ही, मुझे यह भी जानना है कि अन्य ट्रेट्स, जैसे `Display` या `Clone`, के साथ कैसे व्यवहार करें। क्या कोई