Добавить объявление

Эффективная работа со строками в Rust

Разработчики часто используют String там, где достаточно ссылки на строковые данные (&str). Это приводит к лишнему копированию и расходу памяти.

Типичный случай:

fn print_text(text: String) {
println!("{}", text);
}

let my_string = String::from("hello");
print_text(my_string.clone()); // Лишнее копирование

Оптимальное решение:

fn print_text(text: &str) { // Используем ссылку на строку
println!("{}", text);
}

let my_string = String::from("hello");
print_text(&my_string); // Передаем ссылку

let string_literal = "hello";
print_text(string_literal); // Работает и со строковыми литералами

Преимущества подхода:


  • &str работает с заимствованными данными без копирования.

  • Снижается нагрузка на память.

  • Универсальность - функция принимает разные строковые типы.

Для параметров функций, которые только читают строки лучше выбрать &str вместо String. Это повысит производительность и упростит использование функций.
22.11.2025 15 193