相关疑难解决方法(0)

是否可以在 Rust 中组合类型约束?

我一直在使用相当多的静态类型编程语言(C++、Haskell 等),但对 Rust 还比较陌生。

我经常最终编写这样的代码:

struct LeafNode<K: Ord + Default + Clone, V: Default + Clone> {
  keys: Vec<K>,
  values: Vec<V>,
}

impl <K: Ord + Default + Clone, V: Default + Clone> LeafNode<K, V> {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

这里的类型约束有很多重复。LeafNode当在其他东西中使用时(例如,在构建节点树时),情况会进一步复杂化。每当这些约束之一在实现过程中发生变化时,就有很多地方需要更改代码,因为它们在许多不同的struct定义和impl块中命名。

K: Ord + Default + Clone有没有办法从和创建某种“类型约束别名” V: Default + Clone

如果它存在,它可能有一些我不知道的名称,这使得搜索该技术非常困难。于是就有了这个问题。

generics type-constraints rust

6
推荐指数
1
解决办法
634
查看次数

标签 统计

generics ×1

rust ×1

type-constraints ×1