C'est peut-être la question la plus stupide de Rustlang, mais je promets que j'ai fait de mon mieux pour trouver la réponse dans la documentation ou tout autre endroit sur le Web.
Je peux convertir une chaîne en un vecteur d'octets comme celui-ci:
let bar = bytes!("some string");
Malheureusement, je ne peux pas le faire de cette façon
let foo = "some string";
let bar = bytes!(foo);
Car bytes!
attend un littéral de chaîne.
Mais alors, comment puis-je convertir mon foo en un vecteur d'octets?
(&str).as_bytes
vous donne une vue d'une chaîne comme &[u8]
tranche d'octets (qui peut être appelée sur String
car cela dérive vers str
, et il y a aussi String.into_bytes
consommera un String
pour vous donner un Vec<u8>
.
Utilisez le .as_bytes
version si vous n'avez pas besoin de posséder les octets.
fn main() {
let string = "foo";
println!("{:?}", string.as_bytes()); // prints [102, 111, 111]
}
BTW, Les conventions de dénomination pour les fonctions de conversion sont utiles dans des situations comme celles-ci, car elles vous permettent de connaître approximativement le nom que vous recherchez.