Преобразование в Vec
Преобразование в Vec<u8> - это операция,
позволяющая получить вектор байтов из различных
типов данных. Чаще всего это преобразование
применяется к строкам и строковым срезам для
получения их байтового представления. Для строк
и срезов str можно использовать метод
as_bytes, который возвращает срез байтов
&[u8], а затем преобразовать его в
Vec<u8> с помощью метода to_vec
или функции Vec::from. Для типа
String также доступен метод into_bytes,
который потребляет строку и возвращает
Vec<u8> без копирования.
Синтаксис
// Для строковых срезов &str
str.as_bytes().to_vec()
Vec::from(str.as_bytes())
// Для String
string.into_bytes()
string.as_bytes().to_vec()
Vec::from(string.as_bytes())
Пример
Давайте преобразуем строковый срез "abcde"
в вектор байтов с помощью метода as_bytes
и to_vec:
fn main()
{
let res = "abcde".as_bytes().to_vec();
println!("{:?}", res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]
Пример
Давайте преобразуем строку String
"12345" в вектор байтов с помощью метода
into_bytes:
fn main()
{
let s = String::from("12345");
let res = s.into_bytes();
println!("{:?}", res);
}
Результат выполнения кода:
[49, 50, 51, 52, 53]
Пример
Давайте преобразуем строковый срез "abcde"
в вектор байтов с помощью функции Vec::from:
fn main()
{
let res = Vec::from("abcde".as_bytes());
println!("{:?}", res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]