(&str).as_bytes
gives you a view of a string as a &[u8]
byte slice (that can be called on String
since that derefs to str
, and there's also String.into_bytes
will consume a String
to give you a Vec<u8>
.
Use the .as_bytes
version if you don't need ownership of the bytes.
fn main() {
let string = "foo";
println!("{:?}", string.as_bytes()); // prints [102, 111, 111]
}
BTW, The naming conventions for conversion functions are helpful in situations like these, because they allow you to know approximately what name you might be looking for.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…