Метод as_bytes_mut
Метод as_bytes_mut возвращает изменяемый срез байтов
(&mut [u8]) для строки. Этот метод доступен только
для изменяемых строк (String) и позволяет напрямую
редактировать содержимое строки на уровне байтов. Метод не
принимает параметров и возвращает изменяемую ссылку на
байтовое представление строки.
Синтаксис
str.as_bytes_mut()
Пример
Давайте получим изменяемый срез байтов строки
"abcde" и изменим первый байт:
fn main()
{
let mut s = String::from("abcde");
let bytes = unsafe { s.as_bytes_mut() };
bytes[0] = b'A';
println!("{}", s);
}
Результат выполнения кода:
"Abcde"
Пример
Давайте заменим все байты строки "12345"
на новые значения:
fn main()
{
let mut s = String::from("12345");
let bytes = unsafe { s.as_bytes_mut() };
bytes[0] = b'9';
bytes[1] = b'8';
bytes[2] = b'7';
println!("{}", s);
}
Результат выполнения кода:
"98745"