如何将字符串转换为生锈中的字节向量?

时间:2014-05-24 23:03:52

标签: type-conversion rust

这可能是有史以来最肮脏的Rustlang问题,但我保证我会尽力在文档或网络上的任何其他地方找到答案。

我可以将字符串转换为字节向量,如下所示:

let bar = bytes!("some string");

不幸的是我无法这样做

let foo = "some string";
let bar = bytes!(foo);

因为bytes!需要字符串文字。

但是,如何将我的foo转换为字节向量?

1 个答案:

答案 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在这类情况下很有用,因为它们可让您大致了解您可能要查找的名称。