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

Метод into_boxed_str

Метод into_boxed_str преобразует строку типа String в тип Box<str>. Он потребляет исходную строку и возвращает умный указатель на строковый срез. Этот метод полезен, когда нужно уменьшить объем занимаемой памяти: если строка была создана с большим запасом емкости, то после преобразования лишняя память будет освобождена. Параметров метод не принимает.

Синтаксис

String::into_boxed_str(self) -> Box<str>

Пример

Давайте преобразуем строку "abcde" в Box<str> и выведем результат:

fn main() { let s = String::from("abcde"); let res = s.into_boxed_str(); println!("{}", res); }

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

"abcde"

Пример

Давайте проверим, что после преобразования переменная res имеет тип Box<str> и занимает ровно столько памяти, сколько нужно для хранения строки:

use std::mem; fn main() { let s = String::with_capacity(100); let s = format!("{}", s); let s = String::from("12345"); let res = s.into_boxed_str(); println!("{}", res); println!("{}", res.len()); println!("{}", mem::size_of_val(&res)); }

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

"12345" 5 16

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

  • класс String,
    который представляет изменяемую строку
  • метод into_bytes,
    который преобразует строку в вектор байтов
  • метод as_str,
    который возвращает строковый срез без изменения владения
  • метод shrink_to_fit,
    который уменьшает емкость строки без изменения типа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить