这可能是有史以来最肮脏的Rustlang问题,但我保证我会尽力在文档或网络上的任何其他地方找到答案。
我可以将字符串转换为字节向量,如下所示:
let bar = bytes!("some string");
不幸的是我无法这样做
let foo = "some string";
let bar = bytes!(foo);
因为bytes!
需要字符串文字。
但是,如何将我的foo转换为字节向量?
答案 0 :(得分:23)
(&str).as_bytes
为您提供了一个字符串视图作为&[u8]
字节切片(可以在String
上调用,因为它可以解析为str
,并且&#39}另外,String.into_bytes
将使用String
来为您提供Vec<u8>
。
如果您不需要字节的所有权,请使用.as_bytes
版本。
fn main() {
let string = "foo";
println!("{:?}", string.as_bytes()); // prints [102, 111, 111]
}
顺便说一句,naming conventions for conversion functions在这类情况下很有用,因为它们可让您大致了解您可能要查找的名称。