禁用默认名称空间

时间:2015-06-05 22:34:40

标签: namespaces rust

默认情况下,Rust似乎use了一些命名空间。例如,我不必使用std::string::String,只需键入String即可。如何定义自己的struct String而不与std::string::String发生冲突?我在哪里可以找到默认包含的命名空间列表?

2 个答案:

答案 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)。