禁用默认命名空间

Disabling default namespaces

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

不是'default namespaces'的问题,是the prelude的问题。

您可以创建自己的 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,在撰写本文时)。