Avatar ·

كيفية إنشاء متجه من الأصفار بحجم معين في Rust؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مهمة تبدو بسيطة: أحتاج إلى إنشاء متجه (Vec) مملوء بالأصفار بحجم معين. في Python كنت سأكتب `[0] * n`، وفي C++ — `std::vector v(n, 0)`، لكن في Rust لا أستطيع إيجاد مقابل مباشر. لقد جربت عدة خيارات، لكنها لا تعمل أو تبدو غريبة. على سبيل المثال: ```rust let size = 10; let my_vec: Vec = vec![0; size]; // هذا يتم ترجمته، لكن هل هو صحيح؟ ``` كما رأيت في التوثيق طريقة `with_capacity`، لكنها على ما يبدو تحجز الذاكرة فقط دون ملئها: ```rust let mut my_vec: Vec = Vec::with_capacity(size); // my_vec.len() لا يزال 0 ``` أحتاج أن يحتوي المتجه فور إنشائه على N من الأصفار بالضبط، حتى أتمكن من الوصول إلى العناصر بواسطة الفهرس دون panic. في مهمتي الحقيقية، أريد إنشاء متجه لتخزين نتائج العمليات الحسابية — على سبيل المثال، متجه من 1000 عنصر سأملؤه لاحقاً في حلقة. أرشدوني، كيف يمكنني بشكل صحيح و