Rust模块,结合了两个use语句



来自文档

use std::io;
use std::io::Write;

两个使用语句,其中一个是另一个的子路径

这两条路径的共同部分是std::io,这是完整的第一条路径。要将这两个路径合并为一个use语句,我们可以在嵌套路径中使用self,如清单所示

use std::io::{self, Write};

将路径组合为一个使用语句

这一行将std::iostd::io::Write引入范围。

如果我把std::io带到作用域中,那么如果Write是公共项,那么io::Write在作用域中是否会自动可用?为什么需要单独进口?

如果我完全理解你的问题,我认为你误解了use语句。

在我看来,你认为use std::io的声明会把所有公开的东西都从里面带来。但事实并非如此。它只是为std::io创建一个alias,就像创建io一样,所以您可以像在io::Resultio::Write中一样使用它。如果你想从中引入所有公共内容,你应该使用std::io::*,但这是不推荐的,因为它会污染你的命名空间。

最新更新