rust - 如何在 Rust 中定义递归类型别名?

标签 rust

所以在 Rust 中,我可以使用枚举定义递归类型,如下所示:

enum Trie {
    Child(HashMap<char, Box<Trie>>)
}

但是,考虑到这个枚举只有一个成员,这有点冗长。

我可以知道如何让它变得更简单吗?让我们说使用这样的类型别名?

// This code does not compile in rustc 1.55.0
type Trie = HashMap<char, Box<Trie>>;

最佳答案

使用单个字段结构进行编译:

struct Trie(HashMap<char, Box<Trie>>);

关于rust - 如何在 Rust 中定义递归类型别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69781415/

相关文章:

vector - 如何编写一个函数,将元素添加到向量中,并允许在插入之前更改元素?

rust - 如何处理 Rust-Diesel 中的多个错误?

io - 在文件夹中创建文件

rust - as_slice 产生 "not live enough"错误

vector - 在 Rust 中初始化向量的向量

rust - 我是否需要使用 `let` 绑定(bind)来创建生命周期更长的值?

rust - 在 Rust 中实现迭代器

rust - 惯用语借用

rust - 为什么 mut 在外部函数的参数中不需要,尽管在内部闭包中是必需的?

rust - 特征可以为其继承的特征的方法提供默认实现吗?