Метод as_bytes
Метод as_bytes возвращает строку в виде среза байтов
типа &[u8]. Метод не принимает параметров
и не изменяет исходную строку. Полученный срез можно
использовать для побайтовой обработки строки,
например, для доступа к отдельным байтам по индексу,
перебора байтов или передачи данных в функции,
которые работают с байтовыми срезами.
Стоит помнить, что для кириллицы и других не-ASCII символов один символ кодируется несколькими байтами в кодировке UTF-8, поэтому длина байтового среза может быть больше количества символов в строке.
Синтаксис
str.as_bytes()
Пример
Давайте получим байтовый срез строки "abcde"
и выведем его на экран:
fn main()
{
let res = "abcde".as_bytes();
println!("{:?}", res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]
Пример
Давайте получим длину байтового среза строки
"abcde" с помощью метода len:
fn main()
{
let res = "abcde".as_bytes().len();
println!("{}", res);
}
Результат выполнения кода:
5
Пример
Давайте получим байтовый срез строки "абв"
и убедимся, что количество байтов больше количества
символов:
fn main()
{
let res = "абв".as_bytes();
println!("{:?}", res);
println!("bytes: {}", res.len());
println!("chars: {}", "абв".chars().count());
}
Результат выполнения кода:
[208, 176, 208, 177, 208, 178]
bytes: 6
chars: 3
Пример
Давайте обратимся к отдельному байту строки
"abcde" по индексу:
fn main()
{
let bytes = "abcde".as_bytes();
let res = bytes[0];
println!("{}", res);
}
Результат выполнения кода:
97
Смотрите также
-
метод
as_bytes_mut,
который возвращает изменяемый срез байтов строки -
метод
bytes,
который возвращает итератор по байтам строки -
метод
len,
который возвращает длину строки в байтах -
метод
from_utf8,
который создаёт строку из среза байтов