كيفية تقسيم سلسلة نصية (String أو &str) إلى أجزاء في Rust؟
```html
مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مهمة يتم حلها في لغات أخرى (مثل Python أو JavaScript) بسطر واحد. أحتاج إلى تقسيم سلسلة نصية بناءً على فاصل، مثل مسافة أو فاصلة، والحصول على مصفوفة أو متجه بالأجزاء.
إليك ما أحاول فعله:
```rust
let text = "apple,banana,grape";
// أريد الحصول على ["apple", "banana", "grape"]
```
لقد جربت استخدام دالة `.split()`، لكنها تعيد مكرراً وليس مصفوفة. عندما أحاول تجميع النتيجة في متجه باستخدام `.collect()`، يعترض المترجم على الأنواع. كما أنني لا أفهم الفرق بين `String` و `&str` عند التقسيم — هل لديهما دوال مختلفة؟ وماذا أفعل إذا كانت السلسلة تحتوي على أحرف Unicode (مثل السيريلية)؟ هل ستعمل `.split()` بشكل صحيح؟
أرجو توضيح كيفية تقسيم سلسلة نصية بشكل صحيح وفعال. يفضل مع أمثلة برمجية للحالات الأكثر شيوعاً: التقسيم بناءً على حرف واحد، أو على سلسلة فرعية، وكيفية الحصول على متجه من السلاسل أو الشرائح. وشكراً مسبقاً.
```