كيفية الحصول على الحرف الأول من سلسلة نصية في Rust؟
```html
مرحبًا بالجميع! بدأت مؤخرًا في تعلم Rust وواجهت مهمة بسيطة ظاهريًا: الحصول على الحرف الأول من سلسلة نصية. في Python كنت سأكتب `text[0]` وكل شيء يعمل. لكن في Rust هذا الأسلوب لا يعمل.
إليك الكود الخاص بي:
```rust
fn main() {
let greeting = String::from("Привет, мир!");
let first_char = greeting[0];
println!("الحرف الأول: {}", first_char);
}
```
المترجم يعطي خطأ: `the type 'String' cannot be indexed by 'usize'`. أفهم أن السلاسل النصية في Rust ليست مجرد مصفوفات من الأحرف، بل هي تسلسلات بايت مشفرة بـ UTF-8. لكن كيف يمكنني الحصول على الحرف الأول؟ في التوثيق مكتوب عن `.chars()` و `.bytes()`، لكني مرتبك.
أحتاج تحديدًا إلى أول تمثيل رسومي (حرف)، وليس بايت. على سبيل المثال، بالنسبة للسلسلة "Привет" أريد الحصول على 'П'، وليس أي بايت. بالإضافة إلى ذلك، ماذا أفعل إذا كانت السلسلة فارغة؟ وماذا عن الأحرف متعددة البايت، كما في مثالي مع السيريلية؟
من فضلك، اشرح بأمثلة بسيطة.
```