Avatar ·

كيفية التكرار على أحرف سلسلة نصية في Rust؟ تكرار الأحرف حسب الفهرس

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة عند العمل مع السلاسل النصية. أحتاج إلى المرور على كل حرف في سلسلة نصية وتنفيذ إجراء معين عليه. في لغات أخرى (مثل Python أو C++)، اعتدت استخدام الفهارس: `string[i]` في حلقة for. لكن في Rust هذا لا يعمل. إليك الكود الخاص بي الذي لا يتم تجميعه: ```rust fn main() { let text = String::from("Привет, мир!"); for i in 0..text.len() { println!("Символ: {}", text[i]); // خطأ! } } ``` يُصدر المترجم خطأ: `cannot index into a string of type String`. أفهم أن السلاسل النصية في Rust ليست مجرد مصفوفات من الأحرف، بل هي تسلسلات من البايتات بترميز UTF-8. لكن كيف يمكنني التكرار بشكل صحيح على جميع الأحرف؟ أحتاج إلى حل يعمل بشكل صحيح مع Unicode، بما في ذلك الأحرف متعددة البايت (مثل السيريلية، الرموز التعبيرية). سيكون من المفيد أيضاً معرفة كيفية الحصول ليس فقط على الحرف، ولكن أيضاً على موضعه (الفهرس) في السلسلة النصية. أرشدوني، كيف يمكنني القيام بذلك بشكل صحيح وفعال؟