Avatar ·

Rust में iter() और into_iter() के बीच क्या अंतर है?

नमस्ते सहकर्मियों! मैंने Rust सीखना शुरू किया है और इटरेटर के साथ काम करते समय भ्रम का सामना करना पड़ा। दस्तावेज़ीकरण में मैं देखता हूँ कि collections (जैसे Vec) के पास iter() और into_iter() methods हैं। पहली नज़र में वे एक ही काम करते हैं — तत्वों को iterate करने की अनुमति देते हैं। लेकिन मैंने देखा कि into_iter() का उपयोग करने के बाद मूल vector अब उपलब्ध नहीं है, जबकि iter() के बाद यह उपलब्ध है। ऐसा क्यों? यहाँ एक उदाहरण कोड है जो मुझे भ्रमित करता है: ```rust fn main() { let numbers = vec![1, 2, 3]; // iter() का उपयोग for num in numbers.iter() { println!("{}", num); } println!("iter() के बाद vector: {:?}", numbers); // काम करता है! // into_iter() का उपयोग let numbers2 = vec![4, 5, 6]; for num in numbers2.into_iter() { println!("{}", num); } // println!("into_iter() के बाद vector: {:?}", numbers2); // त्रुटि! numbers2 moved हो गया } ``` मैं समझता हूँ कि into_iter() किसी तरह ownership "ले लेता" है, जबकि iter() नहीं लेता। लेकिन कब किस method का उपयोग करना चाहिए?