إنشاء متجه من الأصفار بحجم معين في Rust
مرحبًا بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة. أحتاج إلى إنشاء متجه (Vec) بحجم معين مملوء بالأصفار. في لغات أخرى، مثل Python، أكتب ببساطة `[0] * n`، وفي C++ — `std::vector v(n, 0)`. لكن في Rust لا أجد مشابهًا مباشرًا.
جربت عدة خيارات، لكنها لا تعمل أو تظهر أخطاء في الترجمة. على سبيل المثال:
```rust
let v = vec![0; 5]; // هذا يعمل مع أنواع Copy، لكني أحتاج لـ f64
let v2: Vec = vec![0; 5]; // خطأ: متوقع f64، وُجد عدد صحيح
```
أيضًا حاولت إنشاء متجه باستخدام `Vec::with_capacity(5)` ثم ملؤه في حلقة، لكن هذا يبدو مطولًا جدًا. هل هناك طريقة أكثر أناقة، كما في اللغات الأخرى؟ أحتاج إلى إنشاء متجه من 1000 عنصر من نوع `f64`، جميعها تساوي صفر. شكرًا مقدمًا على المساعدة!
<<>>
استخدام ماكرو vec! مع تحديد النوع صراحةً
المشكلة الأساسية في كودك هي أن Rust صارم في الأنواع، والرقم الحرفي 0 يُعتبر عددًا صحيحًا، وليس f64. يمكنك استخدام vec![0.0; 5] لإنشاء متجه من الأصفار من نوع f64.