РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
169 of 1245 menu

Метод get_mut

Метод get_mut возвращает изменяемую ссылку на подстроку, заданную диапазоном байтов. Параметром метод принимает диапазон индексов в виде Range. Если границы диапазона не совпадают с границами символов UTF-8 или выходят за пределы строки, метод возвращает None. В случае успеха возвращается Some с изменяемой ссылкой на подстроку.

Так как метод возвращает изменяемую ссылку, исходная строка должна быть объявлена как изменяемая переменная, а также должна быть типа String, а не &str.

Синтаксис

str.get_mut(range)

Пример

Давайте получим изменяемую ссылку на подстроку с индексами от 1 до 4 и заменим её содержимое:

fn main() { let mut s = String::from("abcde"); if let Some(sub) = s.get_mut(1..4) { *sub = "XYZ"; } println!("{}", s); }

Результат выполнения кода:

"aXYZde"

Пример

Давайте попробуем получить изменяемую ссылку по диапазону, который не совпадает с границами символов UTF-8. В строке "日本語" каждый символ занимает 3 байта, поэтому диапазон 0..1 не является корректным:

fn main() { let mut s = String::from("日本語"); let res = s.get_mut(0..1); println!("{:?}", res); }

Результат выполнения кода:

None

Пример

Давайте получим изменяемую ссылку на весь диапазон строки и изменим её полностью:

fn main() { let mut s = String::from("12345"); if let Some(sub) = s.get_mut(..) { *sub = "abcde"; } println!("{}", s); }

Результат выполнения кода:

"abcde"

Смотрите также

  • метод get,
    который возвращает неизменяемую ссылку на подстроку по диапазону
  • метод split_at_mut,
    который делит строку на две изменяемые части по индексу
  • метод as_bytes_mut,
    который возвращает изменяемый срез байтов строки
  • метод is_char_boundary,
    который проверяет, является ли индекс границей символа UTF-8
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить