Avatar ·

كيفية دمج متجهين (Vec) في Rust بشكل صحيح؟ أفضل طرق الربط

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة دمج متجهين. لنفترض أن لدي متجهين من الأرقام: `vec1` و `vec2`. أحتاج إلى الحصول على متجه ثالث يحتوي على جميع العناصر من الأول ثم جميع العناصر من الثاني. في Python كنت سأكتب ببساطة `vec1 + vec2`، لكن هذا لا يعمل في Rust. جربت عدة طرق، لكنني لست متأكداً أي منها صحيح وفعال. إليك الكود الخاص بي: ```rust let mut vec1 = vec![1, 2, 3]; let vec2 = vec![4, 5, 6]; // المحاولة 1: الجمع البسيط (لا يتم ترجمته) // let result = vec1 + vec2; // المحاولة 2: عبر extend vec1.extend(vec2); println!("{:?}", vec1); // حصلت على [1, 2, 3, 4, 5, 6]، لكن vec1 تغير // المحاولة 3: عبر حلقة let mut result = Vec::new(); for item in &vec1 { result.push(*item); } for item in &vec2 { result.push(*item); } ``` المشاكل: 1. `extend` يأخذ الملكية ويغير المتجه الأصلي، وهذا ليس مناسباً دائماً. 2. الحلقة تبدو ضخمة وربما ليست الأفضل