默认情况下,Rust似乎use
了一些命名空间。例如,我不必使用std::string::String
,只需键入String
即可。如何定义自己的struct String
而不与std::string::String
发生冲突?我在哪里可以找到默认包含的命名空间列表?
答案 0 :(得分:6)
这不属于默认名称空间',the prelude。
答案 1 :(得分:5)
您可以创建自己的String
...创建自己的字符串:
struct String {
len: u8,
}
fn main() {}
然后,您可以使用完全限定的路径消除您想要的String
消息:
fn main() {
// String::new();
// error: type `String` does not implement any method in scope named `new`
std::string::String::new();
}
可以找到自动导入项目的完整列表in the prelude(在撰写本文时,版本1)。