كيفية التكرار على Vec<T> مع الحصول على فهرس العنصر في Rust؟
مرحباً بالجميع! لقد بدأت تعلم Rust مؤخراً، وواجهت مشكلة في اجتياز vector مع الوصول إلى فهرس العنصر.
في لغات أخرى، مثل Python أو JavaScript، اعتدت كتابة شيء مثل `for i, value in enumerate(list)` أو `for (let i = 0; i < arr.length; i++)`. أما في Rust، فأعرف أنه يمكنني ببساطة استخدام `for value in vec`، لكنني بذلك أفقد الفهرس.
أحتاج إلى عرض جميع عناصر vector مع مواضعها، على سبيل المثال:
```rust
let items = vec!["яблоко", "банан", "вишня"];
// أريد الحصول على: "0: яблоко", "1: банан", "2: вишня"
```
حاولت القيام بذلك:
```rust
for i in 0..items.len() {
println!("{}: {}", i, items[i]);
}
```
هذا يعمل، لكنني سمعت أن الوصول عبر الأقواس المربعة قد يسبب panic إذا كان الفهرس خارج الحدود. على الرغم من أنني أتحكم في الطول هنا، إلا أن هذا لا يبدو مثالياً لـ Rust. علاوة على ذلك، إذا تغير vector أثناء التكرار، فقد تكون هناك مشاكل.
كيف يمكنني التكرار بشكل صحيح وآمن مع الحصول على الفهرس؟