这可能是有史以来最愚蠢的 RuSTLang 问题,但我保证我已尽力在文档或网络上的任何其他地方找到答案。
我可以像这样将字符串转换为字节向量:
let bar = bytes!("some string");
不幸的是我不能这样做
let foo = "some string";
let bar = bytes!(foo);
因为 bytes!
需要一个字符串文字。
但是,如何将我的 foo 转换为字节向量?
最佳答案
(&str).as_bytes
给你一个字符串的 View &[u8]
字节切片(可以在 String
上调用,因为它取消了对 str
的引用,还有 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在这种情况下很有帮助,因为它们可以让您大致知道您可能要查找的名称。
关于type-conversion - 如何将字符串转换为使用rust 的字节向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850486/