我在rust中找到了实现b-tree的代码:
https://github.com/rust-lang/rust/blob/b6edc59413f79016a1063c2ec6bc05516bc99cb6/src/libcollections/btree/map.rs
其中使用uint
pub struct BTreeMap<K, V> {
root: Node<K, V>,
length: uint,
depth: uint,
b: uint,
}
我想重写这个实现,复制了这个片段,但是看到了错误
error[E0412]: cannot find type `uint` in this scope
--> src/bin/prepare-btree.rs:9:13
|
9 | length: uint,
| ^^^^ not found in this scope
我试着加上
use core::prelude::*;
以及
use {core::primitive::uint};
但没有用。
我的文件中的所有"导入"如下所列:
use std::io::{BufRead, BufReader};
use std::fs::File;
use {core::iter::Map};
在original code中,我找不到导入uint
的位置。uint
的文档:
https://doc.rust-lang.org/core/primitive.unit.html
问题:
use core::prelude::*;
是如何工作的?为什么github link的代码中可以使用uint
?- 如何修复我代码中的
cannot find type
uintin this scope
?
1条答案
按热度按时间os8fio9y1#
这段代码在1.0版本之前就已经很老了(2014年)。
uint
是当时的东西。当前代码位于https://github.com/rust-lang/rust/blob/3b1c8a94a4e8a6ba8bc7b39cc3580db9e5b72295/library/alloc/src/collections/btree/map.rs#L172: