@keddad
Ученик

Для чего нужен Empty и Elem в примитивной структуре данных?

У меня есть простой список:
pub enum List {
    Empty,
    Elem(i32, Box<List>),
}

Почему я должен писать тут Empty, если компилируется и без этого?
Что такое Elem? Это какая то структура данных? Я не обьявлял ее дополнительно и не нашел ее упоминания в документации, но оно работает.
  • Вопрос задан
  • 652 просмотра
Решения вопроса 1
ozkriff
@ozkriff
Rust э̶н̶т̶у̶з̶и̶а̶с̶т сектант, хобби игродел
> Почему я должен писать тут Empty, если компилируется и без этого?

Само перечисление без Elem компилируется, но вот сконструировать реальный список без завершающего пустого узла не выйдет, потому что он должен был бы быть бесконечным.

> Что такое Elem?

Это один из вариантов объявляемого перечисления List, который содержит два безымянных поля понятно каких типов.

> Я не обьявлял ее дополнительно и не нашел ее упоминания в документации, но оно работает.

Это просто простейший синтаксис перечислений (enum'ов), который в любом учебнике по расту описывается, например в растбуке: https://doc.rust-lang.org/book/ch06-01-defining-an...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы