Rust中字符串与字节集合的转换

Rust中字符串与字节集合的转换

String

String -> &str

let a:String = String::from("version");

let X:&str = &a;
let Y:&str = a.as_str();

String -> &[u8]

let a: String = String::from("version");

let X: &[u8] = a.as_bytes();

String -> Vec

let a: String = String::from("version");

let X: Vec<u8> = a.into_bytes();

&str

&str -> String

let a: &str = "version";

let X: String = String::from(a);
let Y: String = a.to_string();
let Z: String = a.to_owned();

&str -> &[u8]

let a: &str = "version";

let X: &[u8] = a.as_bytes();

&str -> Vec

let a: &str = "version";

let X: Vec<u8> = a.as_bytes().to_vec();
let Y: Vec<u8> = a.as_bytes().to_owned();

&[u8]

&[u8] -> &str

let a = b"version";

let X:&str = std::str::from_utf8(a).unwrap();

&[u8] -> String

let a = b"version";

let X: String = String::from_utf8(a.to_vec()).unwrap();

&[u8] -> Vec

let a = b"version";

let X:Vec<u8> =a.to_vec();

Vec

Vec -> &str

let a: Vec<u8> = "version".as_bytes().to_vec();

let X:&str = std::str::from_utf8(&a).unwrap();

Vec -> String

let a: Vec<u8> = "version".as_bytes().to_vec();

let X:String = String::from_utf8(&a).unwrap();

Vec -> &[u8]

let a: Vec<u8> = "version".as_bytes().to_vec();

let X: &[u8] = &a;
let Y: &[u8] = a.as_slice();