Avatar ·

Как найти индекс элемента в массиве, векторе или срезе в Rust?

مرحباً! أنا مبتدئ في Rust وأحاول حل مهمة بسيطة: العثور على فهرس عنصر في مصفوفة. في لغات أخرى (مثل Python)، اعتدت على طرق مثل `list.index()`، لكن في Rust الأمر مختلف. إليك مثال: لدي مصفوفة أرقام، وأريد العثور على فهرس الرقم `5`. ```rust fn main() { let arr = [1, 3, 5, 7, 9]; let target = 5; // كيف يمكنني العثور على فهرس 5؟ } ``` لقد جربت استخدام `arr.iter().position(|x| x == target)`، لكني أحصل على خطأ. في التوثيق مكتوب أن `position` يعيد `Option`، ولا أفهم كيف يمكن معالجة هذه النتيجة بشكل صحيح. كما أنني لست متأكداً مما إذا كان هذا يعمل مع `Vec` والشرائح (`&[i32]`). سؤال آخر: ماذا أفعل إذا لم يتم العثور على العنصر؟ في Python كنت سأحصل على استثناء، أما في Rust، كما فهمت، يجب معالجة `None`. لكن كيف أفعل ذلك بشكل جميل ومتوافق مع الأسلوب المعتاد؟ سأكون ممتناً للحصول على أمثلة للمصفوفة، المتجه، والشريحة. أريد أن أفهم كيف يعمل هذا في Rust، خاصةً مع مراعاة نظام الملكية والاقتراض. شكراً مقدماً!