Как преобразовать &str в &[u8] в Rust?
```html
الترجمة من الروسية إلى العربية
مرحبًا جميعًا! لقد بدأت للتو في تعلم Rust وواجهت مشكلة تبدو بسيطة، لكنني لا أستطيع إيجاد الحل الصحيح. أحتاج إلى تمرير سلسلة نصية إلى دالة تنتظر شريحة بايت `&[u8]`. على سبيل المثال، أكتب برنامجًا بسيطًا للعمل مع الملفات: أريد كتابة سلسلة نصية إلى ملف باستخدام `write`، لكنها تقبل `&[u8]`، بينما لدي `&str`.
هذا هو الكود الخاص بي:
```rust
use std::fs::File;
use std::io::Write;
fn main() {
let s = "Привет, мир!";
let mut file = File::create("test.txt").unwrap();
file.write(s).unwrap(); // Ошибка: expected &[u8], found &str
}
```
أحصل على خطأ في الترجمة: `expected &[u8], found &str`. أفهم أن السلاسل النصية في Rust هي UTF-8، والبايتات هي مجرد تسلسل من البايتات. لكن كيف أحصل على شريحة بايت من السلسلة النصية؟ جربت استخدام `as_bytes()`، لكنني لست متأكدًا من أن هذا صحيح. بالإضافة إلى ذلك، هل هناك فرق بين `&str` و `String` في هذا السياق؟ وماذا أفعل إذا كانت السلسلة النصية تحتوي على أحرف غير ASCII، كما في حالتي؟
```