Avatar ·

Cómo convertir &str a &[u8] en Rust?

¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con un problema que parece simple, pero no encuentro la solución correcta. Necesito pasar un string a una función que espera un slice de bytes `&[u8]`. Por ejemplo, estoy escribiendo un programa simple para trabajar con archivos: quiero escribir un string en un archivo usando `write`, pero esta función acepta `&[u8]`, mientras que yo tengo un `&str`. Aquí está mi código: ```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(); // Error: expected &[u8], found &str } ``` Obtengo un error de compilación: `expected &[u8], found &str`. Entiendo que los strings en Rust son UTF-8, y los bytes son simplemente una secuencia de bytes. Pero, ¿cómo obtengo un slice de bytes a partir de un string? Intenté usar `as_bytes()`, pero no estoy seguro de que sea correcto. Además, ¿hay alguna diferencia entre `&str` y `String` en este contexto? ¿Y qué hacer si el string contiene caracteres no ASCII, como en mi ejemplo?