Я читал о типе Box
и списке Cons
, приведенном в этой главе:
enum List {
Cons(i32, Box<List>),
Nil,
}
Я понимаю, почему Rust не позволяет поместить еще List
внутрь List
(см. Листинг 15-2), и я также понимаю, как Box<List>
решает проблему (см. Листинг 15-5).
Поскольку List
помещается в Box
, означает ли это, что в стеке будет только ПЕРВЫЙ Cons
с указателем на List
в куче? Как насчет оставшихся Cons
? Будут ли они в стеке? Как они могут быть в стеке, когда List
находится в куче? Или они в куче (это звучит не очень красиво)?