Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: struct, enum, encapsulation, memory

Чем отличается enum от struct в Rust?

Этот вопрос проверяет понимание концепций структур и перечислений в Rust и их подходящих сценариев использования.

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

Struct используется для объединения данных, где все поля всегда присутствуют, что удобно для хранения сложных объектов с фиксированными свойствами. Enum, напротив, позволяет хранить одно значение из нескольких вариантов, что делает его полезным для представления состояния или выбора из нескольких опций.

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

В Rust как struct, так и enum используются для работы с составными типами данных, но они решают разные задачи.

Struct:

  • Struct — это агрегированный тип данных, который содержит набор именованных или неименованных полей.

  • Все поля структуры всегда присутствуют в памяти.

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

Пример использования структуры:

struct Point {
    	x: f32,
    	y: f32,
}

fn main() {
    	let point = Point { x: 1.0, y: 2.0 };
    	println!("Point({}, {})", point.x, point.y);
}

Enum:

  • Enum предоставляет возможность выбрать одно из нескольких заранее определённых вариантов.

  • В памяти хранится только один вариант, что экономит ресурсы.

  • Используется для представления различных состояний, таких как результат операции или события.

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

enum Shape {
    	Circle(f32),
    	Rectangle { width: f32, height: f32 },
}

fn main() {
    	let shape = Shape::Circle(5.0);
    	match shape {
        	Shape::Circle(radius) => println!("Circle with radius {}", radius),
        	Shape::Rectangle { width, height } => println!("Rectangle {}x{}", width, height),
    	}
}

Ключевые различия:

  • Struct сохраняет данные сразу всех полей, тогда как Enum хранит только одно из возможных состояний.

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

Вывод:
Используйте Struct для объединения данных, которые всегда нужны вместе, и Enum для работы с вариантами, когда только одно состояние активно.

  • Аватар

    Rust Guru

    Eduard Paul

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Rust

    Rust

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

#struct

#enum

#encapsulation

#memory

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

  • Аватар

    Rust Guru

    Eduard Paul

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