Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: string, ownership, borrowing

В чем различия между String и &str в Rust?

Этот вопрос проверяет понимание разницы между владением строки (String) и ссылкой на строку (&str).

Короткий ответ

  • String — это владимый тип данных, размещённый в куче. Он изменяем и позволяет манипулировать содержимым строки.

  • &str — это заимствованный тип данных, обычно используемый для чтения строковых данных. Он неизменяем и эффективен для передачи строк в функции.

Длинный ответ

В Rust строки представлены двумя основными типами: String и &str. Эти типы имеют разные цели и особенности.

1. String:

  • Владимый тип данных.

  • Хранится в куче, что позволяет динамически изменять содержимое.

  • Подходит, когда требуется создавать, изменять или сохранять строку.

  • Пример создания:

let mut owned = String::from("Hello");
owned.push_str(", world!");
println!("{}", owned); // "Hello, world!"

2. &str:

  • Заимствованный тип данных.

  • Представляет неизменяемую ссылку на строку, хранящуюся либо в куче, либо в статической памяти.

  • Эффективен для передачи строк без их копирования.

  • Пример использования:

let borrowed: &str = "Hello, world!";
println!("{}", borrowed);

Основные отличия:

  • String владеет данными и освобождает их при выходе из области видимости, в то время как &str ссылается на данные, которыми управляет кто-то другой.

  • Методы String ориентированы на изменение строки (push, clear), тогда как методы &str предназначены для чтения и анализа строки (len, contains).

Используйте String для хранения и изменения строк, а &str — для передачи ссылок на строки и работы с неизменяемыми данными.

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Rust

    Rust

Ключевые слова

#string

#ownership

#borrowing

Подпишись на Rust Developer в телеграм

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.