Что такое структура Cons()? (Это правильная структура?) Я нигде не могу найти документацию.
Ответ 1
Cons не имеет особого значения в Rust. Это только имя, которое автору учебника понравилось назвать этим вариантом перечисления. Тот же List может быть определен как:
enum List {
Pair(u32, Box<List>),
Nil
}
Имя Cons происходит от LISP, который использует пары (узлы связанных списков) в качестве основных строительных блоков структур данных. Вот как можно создать список 1,2,3 в CommonLisp
(cons 1 (cons 2 (cons 3 nil)))
Cons является сокращением construct, с помощью которого программисты LISP означают выделение памяти. Программы, которые выделяют много памяти, считаются Cons слишком большим.