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