Avatar ·

Comment convertir String, &str, Vec<u8> et &[u8] les uns en les autres en Rust ?

Bonjour à tous ! J'ai récemment commencé à apprendre Rust et je me mélange constamment avec les conversions entre chaînes et tableaux d'octets. Le problème vient du fait qu'il existe différents types pour les chaînes en Rust : String, &str, et pour les octets — Vec<u8> et &[u8].

\n\n

Par exemple, j'écris un programme simple qui lit un fichier, traite les chaînes et affiche le résultat. Mais j'obtiens constamment des erreurs de compilation parce que je n'arrive pas à comprendre comment convertir correctement un type en un autre.

\n\n
use std::fs;\n\nfn main() {\n    let data: Vec<u8> = fs::read("example.txt").unwrap();\n    // Comment convertir Vec<u8> en String ?\n    let text: String = ???;\n    \n    // Ensuite, je dois passer une partie de la chaîne à une fonction qui accepte &