【发布时间】:2020-05-07 11:18:51
【问题描述】:
链表的 Rust 教程示例是:
enum List {
Cons(u32, Box<List>),
Nil
}
Cons() 结构到底是什么? (它是一个结构,对吧?)我在任何地方都找不到任何文档。
【问题讨论】:
-
Cons是List枚举的变体。意思是链表有两种可能的情况 - 一个空列表或一个由u32和~List组成的头 -
我了解
enum的工作方式有点像Cunion,并且我了解~List如何指向列表中的下一个元素,就像您的教科书单链表一样。我没有看到Cons()是 或确实是什么。该文档只是将其从无处吐出,就好像它已经在文档中之前定义或解释过一样。它只是某种匿名结构吗? “元组结构”必须提前定义:struct Cons(u32, ~List)并且元组没有名称:(u32, ~List) -
这是
Cons的定义,它类似于前面教程中给出的Shape枚举的Circle和Rectangle的情况。正如它所解释的,变量不必是简单的值,Cons看起来类似于元组结构,尽管它的类型将是封闭的枚举类型(在这种情况下为List)。 -
啊,我明白了!那会教我混合和匹配我想的教程......发布答案,我会为你打勾
-
@J V,在函数式用语中,这通常称为 sum 类型,因为“List”在这里可以包含 Cons 或 Nil,或者所有变体的总和。
标签: rust