Keyword use[−][src]
Expand description
从其他 crates 或模块导入或重命名项。
通常,使用 use
关键字来缩短引用模块项所需的路径。
关键字可能出现在模块,块甚至函数中,通常在顶部。
关键字最基本的用法是 use path::to::item;
,尽管支持许多便捷的快捷方式:
-
使用类似 glob 的大括号语法
use a::b::{c, d, e::f, g::h::i};
同时绑定具有公共前缀的路径列表 -
使用
self
关键字 (例如use a::b::{self, c, d::e};
) 同时绑定具有公共前缀的路径列表及其公共父模块 -
使用语法
use p::q::r as x;
将目标名称重新绑定为新的本地名称。 这也可以与最后两个功能一起使用:use a::b::{self as ab, c as abc}
. -
使用星号通配符语法
use a::b::*;
绑定与给定前缀匹配的所有路径。 -
多次嵌套先前功能的组,例如
use a::b::{self as ab, c, d::{*, e::f}};
-
使用可见性修改器 (例如
pub use a::b;
) 进行重导出 -
使用
_
导入仅导入 trait 的方法而不将其绑定到名称 (例如,避免冲突) :use ::std::io::Read as _;
.
支持使用 crate
,super
或 self
之类的路径限定符: use crate::a::b;
.
注意,当在类型上使用通配符 *
时,它不会导入其方法 (尽管对于 enum
而言,它会导入成员,如下例所示)。
ⓘ
enum ExampleEnum { VariantA, VariantB, } impl ExampleEnum { fn new() -> Self { Self::VariantA } } use ExampleEnum::*; // Compiles. let _ = VariantA; // 不编译! let n = new();Run
有关 use
和常规路径的更多信息,请参见 Reference。
也可以在 Reference 中找到有关 2015 年版本和 2018 年版本之间的路径和 use
关键字的差异。