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
关键字的差异。